LeetCode 753. 破解保险箱(有向欧拉图,计算机译码)
有一个需要密码才能打开的保险箱。密码是 n 位数, 密码的每一位是 k 位序列 0, 1, …, k-1 中的一个 。
你可以随意输入密码,保险箱会自动记住最后 n 位输入,如果匹配,则能够打开保险箱。
举个例子,假设密码是 “345”,你可以输入 “012345” 来打开它,只是你输入了 6 个字符.
请返回一个能打开保险箱的最短字符串。
示例1:
输入: n = 1, k = 2
输出: “01”
说明: "10"也可以打开保险箱。
示例2:
输入: n = 2, k = 2
输出: “00110”
说明: “01100”, “10011”, “11001” 也能打开保险箱。
提示:
n 的范围是 [1, 4]。
k 的范围是 [1, 10]。
k^n 最大可能为 4096。
思路:
图自OI-WIKI
因为这样构造的图每个点的入度等于出度,所以这是一个有向欧拉图,可以直接递归标记边(也就是Hierholzer算法)来求欧拉回路。
不过最终得到的路径和遍历的顺序是反着的(先递归再压栈)。而遍历第一条边000…的时候,只算了一个0,所以最终结果还要加上 n − 1 n-1 n−1个0。
class Solution {private:unordered_map<int,int>mp;string ans;int mod;
public:void dfs(int k,int now) {for(int x = 0;x < k;x++) {int nex = now * 10 + x;if(!mp.count(nex)) {mp[nex] = 1;dfs(k,nex % mod);ans += (x + '0');}}}string crackSafe(int n, int k) {mod = pow(10,n - 1);dfs(k,0);ans += string(n - 1,'0');return ans;}
};
LeetCode 753. 破解保险箱(有向欧拉图,计算机译码)相关推荐
- Leetcode 753. 破解保险箱 C++
Leetcode 753. 破解保险箱 题目 有一个需要密码才能打开的保险箱.密码是 n 位数, 密码的每一位是 k 位序列 0, 1, -, k-1 中的一个 . 你可以随意输入密码,保险箱会自动记 ...
- Java实现 LeetCode 753 破解保险箱(递归)
753. 破解保险箱 有一个需要密码才能打开的保险箱.密码是 n 位数, 密码的每一位是 k 位序列 0, 1, -, k-1 中的一个 . 你可以随意输入密码,保险箱会自动记住最后 n 位输入,如果 ...
- 【753. 破解保险箱】
来源:力扣(LeetCode) 描述: 有一个需要密码才能打开的保险箱.密码是 n 位数, 密码的每一位是 k 位序列 0, 1, ..., k-1 中的一个 . 你可以随意输入密码,保险箱会自动记住 ...
- 753. 破解保险箱
有一个需要密码才能打开的保险箱.密码是 n 位数, 密码的每一位是 k 位序列 0, 1, ..., k-1 中的一个 . 你可以随意输入密码,保险箱会自动记住最后 n 位输入,如果匹配,则能够打开保 ...
- LeetCode-753. 破解保险箱
题目链接:753. 破解保险箱 很日常,没看题解之前依然没有发现这是道图论的题目(每日一题从官方题解开始=.=).第一次在OJ练习上做到图论的题,之前做图论的题都是辛辛苦苦写了好多结构体然后按点按边做 ...
- leetcode-753: 破解保险箱
leetcode-753: 破解保险箱 题目 解题 方法一:Hierholzer 算法 题目 题目链接 有一个需要密码才能打开的保险箱.密码是 n 位数, 密码的每一位是 k 位序列 0, 1, -, ...
- 自制机器人15分钟破解保险箱密码
去年圣诞节,内森·赛德的妻子给了他一个从Graigslist上淘来的二手保险箱.乍一看,好像是个奇怪的礼物.这对夫妻已经有了同型号的SentrySafe防火保险箱,从家得宝花120美元买的.但这个,有 ...
- 我是如何使用自制机器人在15分钟内破解保险箱密码的?
本文讲的是 我是如何使用自制机器人在15分钟内破解保险箱密码的?, 亮相Def Con大会 热辣的7月,安全圈有两场最为火爆的顶级信息会议在美国拉斯维加斯拉开帷幕,它们分别是美国黑帽大会BlackHa ...
- JAVA程序设计:破解保险箱(LeetCode:753)
有一个需要密码才能打开的保险箱.密码是 n 位数, 密码的每一位是 k 位序列 0, 1, ..., k-1 中的一个 . 你可以随意输入密码,保险箱会自动记住最后 n 位输入,如果匹配,则能够打开保 ...
最新文章
- 目标还是中国人,纽约智慧城市项目想通过EB-5募资10亿
- 2021吉林市高考成绩查询系统,吉林省教育考试院高考成绩查询系统入口2021
- Vue——[Props with type Object/Array must use a factory function to return the default value.]解决方案
- Linux 常见命令之Find \; +结合其它命令使用案例详解
- Qt之QSpacerItem
- 分享Web应用运行的细节问题:预编译提高网站性能、跟踪用户习惯和解决线程同步...
- Spring4Shell的漏洞原理分析
- Envi 4.7 破解安装及下载(转)
- c++获取图像的长宽 opencv_【第一篇:C++与opencv】图片的读取和显示 | 学步园
- STL(七)——队列queue优先队列priority_queue
- bzoj1568 [JSOI2008]Blue Mary开公司 标记永久化线段树
- JQuery学习记录——jQuery对象和DOM对象的转换
- 数据结构的小知识点(初学者使用)“朝闻道”知识分享大赛
- 每天一个php函数之:strtolower() 函数
- BUUCTF中的reverse1
- Mooc视频字幕提取
- 模板字符串`${}` 各种函数中的this指向?
- 把JavaScript单独写成文件,开头怎么写
- Liferay使用管理中的一些常见问题
- 2021-2022 ACM-ICPC Latin American Regional Programming Contest 题解
热门文章
- r7 2700X装Linux,R7 3700X相比R7 2700X性能差距大吗?R7-3700X和2700X区别对比评测(2)
- PPPoE拨号l流程
- 3D虚拟化技术透析及竞争分析
- DIY移动的智能助手-------将小爱音箱搬到爱车上
- 一文详解DeepID-Net
- 英语学渣如何成功逆袭?聊聊我获得海外工作的真实经历
- 云BI,如何成为了企业的“贴身管家”?
- 深度解析:特斯拉「最强」自动驾驶芯片?
- html加百度链接地址,如何给百度影音地址添加超链接网址
- 开水果店经验之最全的新手开店学习资料,经营一家水果店需要掌握学习什么