news 2026/6/10 21:46:52

代码随想录--6.回溯学习记录

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
代码随想录--6.回溯学习记录

一些回溯的心得

也是让我蹭上困难level的题了,比较自豪的是截至目前已经尽力把所有问题往二叉树的结构方向靠拢,致力于只用一招破题。说白了就是travel中的for循环为当前节点所在层的遍历,而for内的travel则是当前节点往下走的延伸。需要注意的点就是针对不同场景,要考虑返回值是void还是bool(当然我个人还是喜欢void,bool实在难以得心应手),要找的方案是只有一个还是若干,这都会影响具体代码实现细节,比如if中需不需要return,for每次从哪开始,需不需要记录当前index并传参到下一次travel中。

最终需要的结果大都是二维vector,区别在于内里的vector是什么类型一般是int或者string,相比标准解法中的直接在string上操作,我更喜欢用vector<int>来进行处理,最后发现符合需求时再转换成vector<string>并纳入最终res中,事实上感觉这种不需要变化太多的处理流程我想称之为范式,只需要针对不同场景在细节处仔细斟酌即可,大方向都是一个套路,下面以N皇后为例

N皇后

整个代码是比较丝滑地写出来的,一气呵成,(当然也可能因为是上午做的,脑袋比较清醒,昨晚的安排行程那题就给我做破防了(后来怒刷韩剧去了,模范出租车还是太爽了看得),同为困难却也亦有差距啊)从看题到思索再到写出,唯一花时间的地方就是判断排兵布阵的合法性,最后跑通并对比标准答案后也证实了我这套范式的可行性,起码简约且舒适。

class Solution { public: bool isR(vector<int>& dis,int n,int target){ if(dis.empty())return true; if(find(dis.begin(),dis.end(),target)!=dis.end()) return false; for(int i=dis.size()-1;i>=0;i--){ if(abs(dis[i]-target)==dis.size()-i) return false; } return true; } vector<vector<string>> res; vector<int> dis; void travel(int n){ if(dis.size()==n){ string s(n,'.'); vector<string> sol(n,s); for(int i=0;i<n;i++){ sol[i][dis[i]]='Q'; } res.emplace_back(sol); } for(int i=0;i<n;i++){ if(isR(dis,n,i)){ dis.push_back(i); travel(n); dis.pop_back(); } } } vector<vector<string>> solveNQueens(int n) { travel(n); return res; } };

看完就发现来来回回无非就这么几套,满足条件如果复杂就写个isR()函数判断,简单就直接在for或者if中判断,然后记得travel前后操作保持对称,所以有的涉及到重复问题(标准答案给的是用used的vector记录)我都是懒得整直接最后输出res之后排序然后unique去重之类的。但这些重复的问题在未来肯定会经常碰到,都还缺乏对我而言舒适且真正稳固耐用的范式,所以之后n刷的时候需要重点考虑。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 18:40:59

62、非正交多址接入(NOMA)系统的物理层安全

非正交多址接入(NOMA)系统的物理层安全 1. 引言 非正交多址接入(NOMA)被视为下一代无线通信系统的有力候选技术。与传统的正交多址接入(OMA)相比,NOMA 通过在相同的时频资源块上复用用户,能够增加服务用户数量并提高系统频谱效率(SE)。然而,从安全角度来看,用户共…

作者头像 李华
网站建设 2026/6/9 21:44:05

Open-AutoGLM更新如闪电,你的系统能接得住吗?10个真实适配案例警示

第一章&#xff1a;Open-AutoGLM 应用适配数量更新速度比拼 在当前大模型生态快速演进的背景下&#xff0c;Open-AutoGLM 作为开源自动化语言模型适配框架&#xff0c;其对各类下游应用的兼容性扩展速度成为衡量社区活跃度与工程效率的关键指标。不同分支版本在支持新应用时展现…

作者头像 李华
网站建设 2026/6/10 14:57:38

从零到一精通大模型:新手专属学习指南,实战落地不迷茫

在AI技术飞速发展的今天&#xff0c;大模型已成为驱动产业变革的核心引擎&#xff0c;广泛应用于智能办公、代码开发、智能交互等多个场景。对于渴望提升竞争力的职场人、程序员&#xff0c;或是对AI感兴趣的初学者而言&#xff0c;掌握大模型相关技能&#xff0c;无疑是开启职…

作者头像 李华
网站建设 2026/6/10 13:31:05

【Open-AutoGLM免费vs付费深度对比】:哪个模式更适合你的企业级AI部署?

第一章&#xff1a;Open-AutoGLM免费vs付费模式选择 在部署 Open-AutoGLM 时&#xff0c;用户面临的关键决策之一是选择免费模式还是订阅付费服务。这一选择不仅影响成本结构&#xff0c;还直接关系到模型性能、可扩展性以及技术支持的深度。 功能对比与适用场景 免费模式&am…

作者头像 李华
网站建设 2026/6/10 8:01:44

FaceFusion如何处理戴眼镜人物的换脸难题?

FaceFusion如何处理戴眼镜人物的换脸难题&#xff1f; 在当今数字内容爆炸式增长的时代&#xff0c;人脸替换技术早已不再是实验室里的概念玩具。从短视频平台上的趣味变脸&#xff0c;到影视工业中高精度的角色替代表演&#xff0c;深度学习驱动的换脸系统正以前所未有的真实感…

作者头像 李华
网站建设 2026/6/10 13:39:45

揭秘Open-AutoGLM的零知识证明应用:如何实现模型透明与数据保密双赢?

第一章&#xff1a;Open-AutoGLM 隐私保护机制领先性分析Open-AutoGLM 作为新一代开源大语言模型框架&#xff0c;其隐私保护机制在设计之初即融入了端到端的安全理念&#xff0c;显著优于传统架构。该机制通过多层次数据脱敏、联邦学习支持与差分隐私注入&#xff0c;确保用户…

作者头像 李华