news 2026/1/10 12:47:34

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/1/8 12:33:09

Lucky Draw:企业年会抽奖系统完整操作手册

Lucky Draw&#xff1a;企业年会抽奖系统完整操作手册 【免费下载链接】lucky-draw 年会抽奖程序 项目地址: https://gitcode.com/gh_mirrors/lu/lucky-draw 项目简介与核心价值 Lucky Draw 是一款专为企业年会设计的现代化抽奖解决方案&#xff0c;基于 Vue.js 前端框…

作者头像 李华
网站建设 2025/12/22 10:35:38

数据编程规范

数据编程综述概念数据编程是指通过编写计算机程序来处理数据&#xff0c;实现数据加工、分析和应用的过程。主要包含以下要素&#xff1a;编程语言&#xff1a;如SQL等数据处理工具数据对象&#xff1a;分析过程中涉及的各种数据分析平台&#xff1a;包括数据存储、计算平台和程…

作者头像 李华
网站建设 2026/1/4 18:53:04

LeagueAkari:重新定义英雄联盟游戏体验的智能自动化解决方案

LeagueAkari&#xff1a;重新定义英雄联盟游戏体验的智能自动化解决方案 【免费下载链接】LeagueAkari ✨兴趣使然的&#xff0c;功能全面的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/LeagueAkari 在…

作者头像 李华
网站建设 2025/12/16 22:33:03

百度网盘提取码智能获取工具完全攻略

百度网盘提取码智能获取工具完全攻略 【免费下载链接】baidupankey 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 还在为繁琐的百度网盘提取码输入流程而困扰吗&#xff1f;每次遇到加密分享的资源&#xff0c;都需要在多个页面间来回切换&#xff0c;严重…

作者头像 李华
网站建设 2025/12/16 22:31:38

原神自动化辅助系统技术实现与配置方案

原神自动化辅助系统技术实现与配置方案 【免费下载链接】better-genshin-impact &#x1f368;BetterGI 更好的原神 - 自动拾取 | 自动剧情 | 全自动钓鱼(AI) | 全自动七圣召唤 | 自动伐木 | 自动派遣 | 一键强化 - UI Automation Testing Tools For Genshin Impact 项目地址…

作者头像 李华
网站建设 2025/12/31 10:07:05

2025年最完整的飞书文档导出解决方案:一键批量导出所有文档

2025年最完整的飞书文档导出解决方案&#xff1a;一键批量导出所有文档 【免费下载链接】feishu-doc-export 项目地址: https://gitcode.com/gh_mirrors/fe/feishu-doc-export 在数字化办公日益普及的今天&#xff0c;企业和个人都面临着文档管理的重要挑战。飞书文档导…

作者头像 李华