- 博客(34)
- 收藏
- 关注
原创 回溯算法--N皇后问题
需要注意的是,只有三个方向需要判断,不要判断是否在同一行,因为我们的递归就是按行递归的,肯定不会在同一行。”(N皇后里,当前行有 N 列可选)。里的循环优化成 O(1) 的查表,比如用三个数组标记列和两条对角线)。这是**“自顶向下”**的编程思想。:遇到复杂的判断条件,先假设有一个函数能干这事,把名字写上(如。”(N皇后里,去下一行)。我们要的是“选了哪些数”,顺序或集合内容是关键。,这样写更紧凑,逻辑更像“双指针”同步移动。,它们本质都是**“正在进行的现场”**。我们要的是“在二维空间中的布局”。
2025-12-26 21:13:16
630
原创 回溯算法--组合总和II
问题要求:给定一个候选数集 (candidates) 和一个目标数 (target),找出 candidates 中所有可以使数字和为 target 的组合。关键约束:1. candidates 中的每个数字在每个组合中只能使用一次。2. 解集不能包含重复的组合。
2025-12-14 17:22:01
382
原创 回溯算法--组合总和III
找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字。示例 1: 输入: k = 3, n = 7 输出: [[1,2,4]]示例 2: 输入: k = 3, n = 9 输出: [[1,2,6], [1,3,5], [2,3,4]]
2025-12-01 19:19:45
296
原创 回溯算法--组合问题
给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。示例: 输入: n = 4, k = 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4], ]
2025-12-01 17:38:10
273
原创 数组--区间和
题目描述给定一个整数数组 Array,请计算该数组在每个指定区间内元素的总和。输入描述第一行输入为整数数组 Array 的长度 n,接下来 n 行,每行一个整数,表示数组的元素。随后的输入为需要计算总和的区间,直至文件结束。输出描述输出每个指定区间内元素的总和。
2025-11-24 17:27:20
131
原创 数组--滑动窗口,双指针
最直接的方法就暴力解法,但是复杂度过高,由于要求连续子数组,因此想到滑动窗口,值得注意的是for循环的j是窗口截至下标,而i是窗口的开始下标。:每个元素被操作2次(加入和移出)那么时候情况使用滑动窗口呢。
2025-11-20 20:26:54
270
原创 最小生成树——Kruskal算法
克鲁斯卡尔算法主要难点在于对边的处理,怎么存储边,以及怎么对边进行排序,使用了两种方法。至于每次加入边需要检查是否存在环,直接用并查集很方便。
2025-11-18 21:23:59
127
原创 去除冗余边二
有一种有向树,该树只有一个根节点,所有其他节点都是该根节点的后继。该树除了根节点之外的每一个节点都有且只有一个父节点,而根节点没有父节点。有向树拥有 n 个节点和 n - 1 条边。如图:现在有一个有向图,有向图是在有向树中的两个没有直接链接的节点中间添加一条有向边。如图:输入一个有向图,该图由一个有着 n 个节点(节点编号 从 1 到 n),n 条边,请返回一条可以删除的边,使得删除该条边之后该有向图可以被当作一颗有向树。
2025-11-17 10:36:38
353
原创 岛屿问题_创造最大岛屿
方法二:方法一复杂度高的地方在于每次都要重复计算岛屿的面积,因此方法二采用unordered_map记录每个岛屿的面积,同时对每个岛屿进行染色,方便区分。方法一:使用暴力算法,遍历每个海洋,将其变为岛屿,然后使用DFS重新计算最大岛屿面积,以此类推,算发比较简单,但是复杂度比较高。给定一个由 1(陆地)和 0(水)组成的矩阵,你最多可以将矩阵中的一格水变为一块陆地,在执行了此操作之后,矩阵中最大的岛屿面积是多少。之后 N 行,每行包含 M 个数字,数字为 1 或者 0,表示岛屿的单元格。
2025-11-04 19:09:55
197
原创 岛屿问题_高山流水
主要是思路还是和孤岛问题如出一辙,使用思想思维求解,分为两组(visited_1,visited_2),从边界节点开始遍历,如果符合高山流水标记true,然后遍历数组,输出同时满足的节点坐标。
2025-11-04 17:09:18
207
原创 孤岛总面积-dfs
方法二:转换思路,挨着陆地的岛屿一定不是孤岛,因此可以从整个岛屿的边界开始遍历,将挨着陆地的岛屿置为0(置为海洋),剩余的就是孤岛了,直接统计即可。方法一:可以先用dfs遍历,标记出来孤岛,然后再使用dfs遍历计算孤岛的面积。本篇使用的方法二,复杂度较低。要计算一篇岛屿中孤岛的面积。
2025-11-03 15:52:41
136
1
原创 岛屿问题2-广度优先遍历解决
整体逻辑和深度优先遍历差不多,主要区别是广度会使用队列进行遍历,将访问节点的周围节点左入队操作,需要注意的是入队时就设置visited = true 防止同一个节点重复入队。
2025-11-01 20:03:34
103
原创 岛屿问题1-深度优先遍历解决
给定一个由 1(陆地)和 0(水)组成的矩阵,你需要计算岛屿的数量。岛屿由水平方向或垂直方向上相邻的陆地连接而成,并且四周都是水域。你可以假设矩阵外均被水包围。后续 N 行,每行包含 M 个数字,数字为 1 或者 0。第一行包含两个整数 N, M,表示矩阵的行数和列数。如果不存在岛屿,则输出 0。
2025-11-01 17:13:27
194
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅