算法练习-回溯

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

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

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

1.这是第一道题目

代码部分

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

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

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

2.return 0不可以漏。

第二题

代码部分

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

这里有几个注意点:

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

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

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

相关推荐
xushichao1989几秒前
代码生成优化技术
开发语言·c++·算法
炽烈小老头7 分钟前
【每天学习一点算法 2026/03/22】前 K 个高频元素
学习·算法
2401_8732046514 分钟前
模板编译期循环展开
开发语言·c++·算法
木心月转码ing14 分钟前
Hot100-Day51-TT70爬楼梯
算法
NAGNIP14 分钟前
一文搞懂经典的优化算法都有哪些?
算法
CoovallyAIHub17 分钟前
2.5GB 塞进浏览器:Mistral 开源实时语音识别,延迟不到半秒
深度学习·算法·计算机视觉
会编程的土豆23 分钟前
C++中的 lower_bound 和 upper_bound:一篇讲清楚
java·数据结构·算法
NAGNIP23 分钟前
一文搞懂深度学习中的损失函数设计!
人工智能·算法
阿里嘎多哈基米25 分钟前
速通Hot100-Day09——二叉树
算法·leetcode·二叉树·hot100
Frostnova丶27 分钟前
LeetCode 48 & 1886.矩阵旋转与判断
算法·leetcode·矩阵