- 博客(7)
- 收藏
- 关注
原创 leetcode93. 复原 IP 地址
通过回溯算法,我们可以有效地求解恢复 IP 地址问题。在搜索过程中,我们通过判断 IP 段的合法性来避免不必要的搜索分支,从而提高了算法的效率。
2024-03-26 12:27:29 280
原创 leetcode40. 组合总和 II
采用回溯算法进行搜索。在搜索过程中,我们从每个元素开始,逐个尝试加入到当前路径中,然后递归搜索下一个元素。在搜索过程中,我们维护当前路径的和。数组进行排序,这样能够使相同的元素相邻,并且在后续搜索过程中方便剪枝操作。:在递归过程中,通过剪枝操作来避免重复搜索相同的路径和相同的组合。中的每个数字在每个组合中只能使用一次。时,将当前路径加入到结果集中。给定一个候选人编号的集合。:解集不能包含重复的组合。中所有可以使数字和为。
2024-03-25 20:11:24 303
原创 leetcode39. 组合总和
本题应用的仍然是回溯思想,回溯抽象出来的树结构最左侧最深,这是因为最左侧可以取到最多的情况,回溯思想十分巧妙,尽管代码写起来非常简单,但是需要考虑的因素有很多,递归何时结束、进入递归修改现场与退出递归时恢复现场、无效情况的及时结束等,需要认真去考虑。
2024-03-25 12:18:56 131
原创 leetcode45. 跳跃游戏 II
如果数组长度为1,那么无需跳跃,因此需要特判一下,初始情况maxIndex为0,因为第0个位置肯定要往后跳,因此步数加一,接着开始遍历数组,每当 i=maxIndex时,说明当前已经走到了最远位置,因此步数加一,更新maxIndex为maxPos,当maxPos已经超过数组末端时,便可停止遍历,返回步数即可。跳跃游戏Ⅰ我们使用了maxPos记录最远可以到达的位置,并没有记录最少需要几步到达这个maxPos,因此在这里需要增加一个maxIndex用于记录当前情况可到达的最远位置。处,你可以跳转到任意。
2024-03-24 12:02:47 244
原创 leetcode55. 跳跃游戏
遍历结束可能有两种情况,一种情况是已经到达最远的位置,但是没有遍历完数组,这种情况表示无法到达最后一个下标,返回false即可;还有一种情况是遍历完数组,但是最远的位置可能在数组大小之外,那么这种情况表示肯定可以达到最后一个下标,那么就返回true。:由于每个位置都记录了最大跳跃长度,假设我们当前位置为i,那么从当前位置往后可到达的最远位置为。为nums[0],依次遍历后续可到达的数组元素,如果从后续某个位置跳出的最远位置大于。,那么将其进行更新,表示可以达到更远的地方,直到遍历结束。
2024-03-24 11:03:21 285
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人