news 2026/4/17 14:25:07

leetcode 困难题 753. Cracking the Safe 破解保险箱

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
leetcode 困难题 753. Cracking the Safe 破解保险箱

Problem: 753. Cracking the Safe 破解保险箱

解题过程

太难了,不会的,看了官方题解和另一个人的题解,总算稍稍理解了,dfs(0);,dfs从0开始,因n-1个0,实际数值还是0,所以的话就从0开始了实际是从”000…00“开始的,欧拉回路最后回到原点,所以答案还需要拼接上n-1个0,也就是ans += string(n-1, ‘0’),欧拉图看了一会才明白怎么连接的,具体的就是pow(k, n-1)个节点,按照题目的意思,需要尽可能的短,每个节点有k个边,从0,1,2,。。。,k-1编号,某个节点n-1个字符,加上编号index,就形成了n位的password,然后去掉第一个数字,就得到后面的n-1个数字即边连接的下一个节点,所以若当前节点是123456,选择的边是9,那么形成了1234569这个数字,去掉第一个数字234569,所以123456和234569通过边9相连

int nei = node * 10 + x;将边的编号拼接上去,seen.count(nei)统计边是否访问过,插入这个边seen.insert(nei),nei % highest去掉第一个数字

Code

class Solution { public: // vector<string> tg; // void dfs(int n, int k, string str) { // if(n==0) { // tg.push_back(str); // return; // } // for(int i = 0; i < k; i++) { // str += (i+'0'); // dfs(n-1, k, str); // str.pop_back(); // } // } int k, highest; unordered_set<int> seen; string ans; string crackSafe(int n, int k) { // dfs(n-1, k, ""); this->k = k; highest = pow(10, n-1); dfs(0); // start from 000...0, length is n-1 ans += string(n-1, '0'); // back to 000...0, length n - 1 return ans; } void dfs(int node) { for(int x = 0; x < k; ++x) { int nei = node * 10 + x; // concat [n-1, index], get n digits if(!seen.count(nei)) { // remember edge had seen, length = n seen.insert(nei); // insert edge dfs(nei % highest); // get n-1 digits in tail, the next node ans += (x + '0'); // get answer } } } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 8:16:46

【Android饮食健康管理系统】(免费领源码+演示录像)|可做计算机毕设Java、Python、PHP、小程序APP、C#、爬虫大数据、单片机、文案

摘 要 科学技术日新月异&#xff0c;人们的生活都发生了翻天覆地的变化&#xff0c;饮食健康管理系统当然也不例外。过去的信息管理都使用传统的方式实行&#xff0c;既花费了时间&#xff0c;又浪费了精力。在信息如此发达的今天&#xff0c;我们可以通过网络这个媒介&#x…

作者头像 李华
网站建设 2026/4/18 9:43:39

LobeChat能否集成珊瑚礁健康数据?海洋生态系统保护行动指南

LobeChat能否集成珊瑚礁健康数据&#xff1f;海洋生态系统保护行动指南 在太平洋偏远环礁的监测站里&#xff0c;一位生态保护工作者正顶着烈日整理传感器数据。她最担心的不是设备故障&#xff0c;而是如何让这些枯燥的温度曲线和白化率数字被地方政府真正“看见”并采取行动。…

作者头像 李华
网站建设 2026/4/16 19:30:29

LobeChat能否导出聊天记录为PDF或文本文件?

LobeChat 能否导出聊天记录为 PDF 或文本文件&#xff1f; 在构建 AI 助手的实践中&#xff0c;一个常被忽视但极其关键的问题浮出水面&#xff1a;我们如何真正拥有自己的对话数据&#xff1f; 许多用户在使用像 ChatGPT 这类主流 AI 对话工具时&#xff0c;常常发现一旦关闭…

作者头像 李华
网站建设 2026/4/18 9:41:36

LobeChat性能优化技巧:降低延迟提升响应速度

LobeChat性能优化技巧&#xff1a;降低延迟提升响应速度 在构建现代AI对话系统时&#xff0c;用户早已不再满足于“能用”&#xff0c;而是追求“流畅”。一个几秒的等待、一次卡顿的流式输出&#xff0c;都可能让用户流失。尤其当我们将大语言模型&#xff08;LLM&#xff09;…

作者头像 李华
网站建设 2026/4/15 15:07:54

3分钟搞定B站超高清下载:downkyi终极配置手册

还在为B站视频下载烦恼吗&#xff1f;downkyi这款实用工具让视频下载变得像点外卖一样简单&#xff01;无论你是想收藏喜欢的UP主作品&#xff0c;还是需要批量下载教学视频&#xff0c;这款工具都能帮你轻松搞定。 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩…

作者头像 李华
网站建设 2026/4/17 21:39:09

字符串匹配算法

Rabin-Karp算法 Rabin-Karp算法是一种基于哈希函数的字符串匹配算法&#xff0c;由 Michael O. Rabin 和 Richard M. Karp 于1987年提出&#xff0c;核心思想是用哈希函数将模式串和文本串中的子串转换为数值进行比较&#xff0c;避免大量不必要的字符比较。这个算法特别适合多…

作者头像 李华