当前位置: 首页 > news >正文

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 } } } };
http://www.cnnetsun.cn/news/92545.html

相关文章:

  • leetcode 763. Partition Labels 划分字母区间-耗时100%
  • 终极指南:猫抓浏览器扩展如何用侧边栏彻底改变你的资源嗅探体验?
  • SC4D40120H-JSM 碳化硅肖特基二极管
  • LobeChat能否对接木星卫星观测?冰下海洋生命可能性探讨
  • 猫抓浏览器扩展:如何用侧边栏让视频资源嗅探变得如此简单
  • LobeChat会话管理机制剖析:精准追踪每一次AI对话
  • Windows右键菜单优化大师:ContextMenuManager深度体验指南
  • 飞书文档批量导出难题:25分钟解决700+文档的终极方案
  • Zipkin 深度解析:核心原理、集成实战与最佳实践
  • Windows右键菜单管理终极指南:让你的桌面操作效率提升300%
  • 驾驶员分心疲劳驾驶打电话打瞌睡喝水检测数据集VOC+YOLO格式8864张12类别
  • 彼得林奇的“长期价值创造“在网络效应企业中的衡量
  • 使用pytorch进行batch_size分批训练,并使用adam+lbfgs算法——波士顿房价预测
  • 如何快速实现Unity游戏多语言支持:新手完整指南
  • [漫画]《软件方法》逃避思考的伪创新舒适区
  • [漫画]喜欢自编图形的遮羞布
  • LobeChat能否支持星际语言翻译?外星文明假说沟通模型构建
  • 软考 系统架构设计师系列知识点之面向服务架构设计理论与实践(16)
  • J2EE技术及应用实验及报告(黑龙江大学)
  • AI农情数据要素服务平台:让种地靠数据,丰产不盲目
  • JavaScript学习笔记:14.类型数组
  • LobeChat能否定制品牌LOGO?白标解决方案
  • navigatetominiprogram实战应用案例分享
  • 1小时验证创意:右键菜单管理工具原型开发
  • LobeChat能否对接土卫六湖泊数据?甲烷循环与外星地貌研究
  • Axolotl推理缓存:5倍性能提升与70%成本优化的架构革命
  • vue3事件处理详解
  • YOLO目标检测入门:手把手教你跑通第一个demo
  • 1小时搭建:VSCode远程开发环境原型
  • 电商项目实战:Vue3父子组件传值最佳实践