算法练习-回溯

今天开始新的章节,关于算法中回溯法的练习,这部分题目的难度还是比较大的,但是十分锻炼人的思维与思考能力。

处理这类题目首先要注意几个基本点:

1.关于递归出口的设置,这是十分关键的,要避免死循环的产生。

1.这是第一道题目

代码部分

这一道题很创新地引入了时间戳这一概念,这是用来记录节点关联问题之间的记录,可以通过时间戳来记录访问的顺序以此来统计在一个范围内节点的个数。

关于代码还有几个注意点:

1.关于mindfn的选用,将第一个开始记录的节点作为mindfn的首节点,这是为了防止第二个遍历开始,若访问到第一个环里面将无法构成一个完整的环状。

2.return 0不可以漏。

第二题

代码部分

第二道题是标准的dfs模型:

这里有几个注意点:

1.对于岛屿可以用scc颜色来染色以此来做相关标记。

2.注意(col[x][y]||mp[i][j]=='.')这里容易忽略col[x][y]这会造成遍历时左右两点来回横跳,造成影响。

好了今天的分享就到这里,希望大家可以多多关注哦。

相关推荐
kyle~11 小时前
算法数学---差分数组(Difference Array)
java·开发语言·算法
橘颂TA12 小时前
机器人+工业领域=?
算法·机器人
小O的算法实验室13 小时前
2025年TRE SCI1区TOP,随机环境下无人机应急医疗接送与配送的先进混合方法,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
小白程序员成长日记13 小时前
2025.11.06 力扣每日一题
算法·leetcode
暴风鱼划水13 小时前
算法题(Python)数组篇 | 4.长度最小的子数组
python·算法·力扣
gugugu.13 小时前
算法:二分算法类型题目总结---(含二分模版)
算法
大G的笔记本13 小时前
算法篇常见面试题清单
java·算法·排序算法
7澄114 小时前
深入解析 LeetCode 数组经典问题:删除每行中的最大值与找出峰值
java·开发语言·算法·leetcode·intellij idea
AI科技星14 小时前
宇宙的几何诗篇:当空间本身成为运动的主角
数据结构·人工智能·经验分享·算法·计算机视觉
前端小L14 小时前
二分查找专题(二):lower_bound 的首秀——精解「搜索插入位置」
数据结构·算法