问题描述:

思路:

总体思路还是很清晰,核心还是给出n个数中k个数的全组合(无重复);然后分别计算hour和minute,注意hour范围是0-11、minute范围0-59,大于11和59了的都要过滤掉,最后的字符串vector排序也可以不排序也可以通过的,只是在调试的时候为了方便我给排序了。

class Solution {
public:
vector<string> readBinaryWatch(int num) {vector<string> ans;if(!num){ans.push_back("0:00");return ans;}vector<vector<int> >indexes;vector<int> vec;for (int i = 1; i <= 10 - num + 1; ++i){vec.push_back(i);dfs(indexes, vec, i, 10, num, 1);vec.pop_back();}int a[] = { 1,2,4,8,1,2,4,8,16,32 };for (int i = 0; i < indexes.size(); i++) {int hour = 0, minute = 0;string t_str;for (int j = 0; j < indexes[i].size(); j++) {if (indexes[i][j] <= 4) {hour += a[indexes[i][j]-1];}else {minute += a[indexes[i][j]-1];}}if (hour > 11 || minute > 59) {continue;}else {t_str = to_string(hour) + ":" + ((minute < 10) ? ("0") : ("")) + to_string(minute);ans.push_back(t_str);}}return ans;
}void dfs(vector<vector<int>> &res, vector<int>sub, int index, int n, int k, int cnt)
{if (cnt >= k) {res.push_back(sub);return;}for (int i = index + 1; i <= n; ++i){sub.push_back(i);dfs(res, sub, i, n, k, cnt + 1);sub.pop_back();}return;
}
};

Leetcode-401-二进制手表相关推荐

  1. Java实现 LeetCode 401 二进制手表

    401. 二进制手表 二进制手表顶部有 4 个 LED 代表小时(0-11),底部的 6 个 LED 代表分钟(0-59). 每个 LED 代表一个 0 或 1,最低位在右侧. 例如,上面的二进制手表 ...

  2. LeetCode 401. 二进制手表

    1. 题目 二进制手表顶部有 4 个 LED 代表小时(0-11),底部的 6 个 LED 代表分钟(0-59). 每个 LED 代表一个 0 或 1,最低位在右侧. 例如,上面的二进制手表读取 &q ...

  3. leetcode—— 401. 二进制手表(使用到将数字转换为字符)

    二进制手表顶部有 4 个 LED 代表小时(0-11),底部的 6 个 LED 代表分钟(0-59). 每个 LED 代表一个 0 或 1,最低位在右侧. 例如,上面的二进制手表读取 "3: ...

  4. LeetCode:二进制手表【401】

    LeetCode:二进制手表[401] 题目描述 二进制手表顶部有 4 个 LED 代表小时(0-11),底部的 6 个 LED 代表分钟(0-59). 每个 LED 代表一个 0 或 1,最低位在右 ...

  5. 力扣401.二进制手表

    题目描述 二进制手表顶部有 4 个 LED 代表 小时(0-11),底部的 6 个 LED 代表 分钟(0-59). 每个 LED 代表一个 0 或 1,最低位在右侧. 例如,上面的二进制手表读取 & ...

  6. 【leetcode】二进制手表-经典或回溯题目

    回溯,题目的本意就是找组合.返回多少种不同的组合.比如说从N个数里面找出K个数不同的组合. 回溯三步骤: 1 画出递归树,找到状态变量. 本题的状态变量有:给定的总数num,组合的初始值start,以 ...

  7. LeetCode:401(Python)—— 二进制手表(简单)

    二进制手表 概述:二进制手表顶部有 4 个 LED 代表 小时(0-11),底部的 6 个 LED 代表 分钟(0-59).每个 LED 代表一个 0 或 1,最低位在右侧. 输入:turnedOn ...

  8. LeetCode:二进制求和【67】

    LeetCode:二进制求和[67] 题目描述 给定两个二进制字符串,返回他们的和(用二进制表示). 输入为非空字符串且只包含数字 1 和 0. 示例 1: 输入: a = "11" ...

  9. python可编程手表_401. 二进制手表(Python)

    题目 难度:★★☆☆☆ 类型:数学 二进制手表顶部有 4 个 LED 代表小时(0-11),底部的 6 个 LED 代表分钟(0-59). 每个 LED 代表一个 0 或 1,最低位在右侧. 二进制手 ...

  10. LeetCode 1290. 二进制链表转整数

    1. 题目 给你一个单链表的引用结点 head. 链表中每个结点的值不是 0 就是 1. 已知此链表是一个整数数字的二进制表示形式. 请你返回该链表所表示数字的 十进制值 . 示例 1: 输入:hea ...

最新文章

  1. 图的遍历——DFS(邻接矩阵)
  2. Schama —— Xml文档约束技术 学习笔记
  3. Python 技术篇-用PIL库修改图片透明度实例演示,改变png图片色道为RGBA、RGB
  4. java--jdbc
  5. 报表打印问题整体解决方案
  6. LNMP环境部署----之Mysql安装部署
  7. 26款Java开源项目,劝你千万别错过,适合所有程序员
  8. 【小白向教程】从零开始为你的手机安装Win11系统
  9. 解决方法:未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序
  10. java pkcs8格式的私钥_RSA加密解密中pkcs1与pkcs8格式私钥互相转换
  11. 【优化求解】粒子群优化和重力搜索算法求解MLP问题matlab代码
  12. 前端代码规范工具ESLint和Prettier
  13. 感情这种事 即便是网恋也不能输!
  14. [附源码]Python计算机毕业设计SSM基于Java的小型电子病历系统(程序+LW)
  15. api接口设计相关总结
  16. 第六天:通过python代码控制越疆机械臂完成抓取投递整个过程
  17. 【软件分享】B站互助小助手
  18. EI会议常见几个出版商出版刊物!
  19. python pycharm 书籍_一份超级完整实用的 PyCharm 图解教程,8K 字赶紧收藏起来
  20. 绍中考能不能用计算机了,广州今年中考六科试卷采用计算机辅助评卷

热门文章

  1. C语言之fwrite()与fprintf()区别(十一)
  2. AVAssetWriter写入char*数据(video)
  3. UE4之判断点是否在矩形内
  4. UE4之设置打包程序分辨率
  5. android之uniapp弹出activity
  6. Abseil之Prefer Factory Functions to Initializer Methods
  7. Mock生成随机数据常用的类型规则
  8. eclipse jdk配置_第一节:学会Java前提-手把手教你配置JDK环境变量
  9. 山东财经大学计算机体系结构考试题,2016年山东财经大学计算机科学与技术学院数据库系统原理与程序设计复试笔试仿真模拟题...
  10. exchange加mysql_Exchange 事务和Exchange 数据库回顾