算法练习-回溯

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

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

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

1.这是第一道题目

代码部分

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

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

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

2.return 0不可以漏。

第二题

代码部分

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

这里有几个注意点:

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

2.注意(colxy||mpij=='.')这里容易忽略colxy这会造成遍历时左右两点来回横跳,造成影响。

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

相关推荐
cc.ChenLy7 小时前
算法从入门到精通实战指南
算法
Jerry14 小时前
LeetCode 160. 相交链表
算法
Jerry14 小时前
LeetCode 19. 删除链表的倒数第 N 个结点
算法
金銀銅鐵14 小时前
费马小定理
python·数学·算法
技术不好的崎鸣同学16 小时前
[ACTF2020 新生赛]Exec 思路及解法
算法·安全·web安全
Full Stack Developme17 小时前
Java LRU 与 LFU 算法及应用
java·开发语言·算法
Jerry18 小时前
LeetCode 707. 设计链表
算法
C语言小火车19 小时前
C++ 堆排序深度精讲:基于完全二叉树的选择排序进化,最坏情况 O(n log n) 的稳定王者
开发语言·c++·算法·排序算法·堆排序
weixin_4000056019 小时前
Vision-Language-Action:LMDrive双损失函数训练模块与 LangAuto 基准评测框架
人工智能·深度学习·算法·机器学习·自动驾驶