回溯算法
大鱼qss
阳光的java程序员
展开
-
剑指 Offer 12. 矩阵中的路径
标准的DFS,也可以理解为回溯算法的题目。 找到数组中和word首字母相同的元素,开始DFS搜索即可。 记得使用一个visited数组来存储路径,避免回头路情况的出现。 代码如下: class Solution { int[][] res = new int[][]{{1 ,0} , {0 ,1} ,{-1, 0} ,{0 ,-1}}; public boolean exist(char[][] board, String word) { int h = board.len.原创 2022-05-19 22:11:03 · 90 阅读 · 0 评论 -
复杂链表的复制(中等)
这个题目在复制的时候需要考虑random指向的结点是否需要new或者是否不存在这个问题,所以我们可以先用,按照正常链表复制的思路,下一个节点肯定需要复制,所以可以使用递归的思路先复制完成下一个节点,然后复制random指向的节点,判断节点是否存在使用HashMap,具体代码如下: /* // Definition for a Node. class Node { int val; Node next; Node random; public Node(int val) ..原创 2022-05-04 22:02:59 · 298 阅读 · 0 评论 -
[leetcode]电话号码的字母组合
这算是一个组合问题,就是从每一个数字的字母里选择一个数,组成一个全排列,首先想到的就是回溯算法。 回溯需要画一个相应的回溯树,这样比较容易理解这个过程,每一次递归调用函数就是树向下走一层,所以处理好这一层的关系和终止条件,那么这个题就很容易解出来,我们先看终止条件。 可以看出每个组合的长度和原来digits的长度相同,那么终止条件也就来了: if(path.length() == digits.length()) { result.add(path.toString.原创 2022-05-03 10:51:03 · 92 阅读 · 0 评论 -
40. 组合总和 II (回溯算法)
40. 组合总和 II (回溯算法)原创 2022-04-20 15:39:54 · 390 阅读 · 0 评论 -
leetcode 39. 组合总和(回溯算法)
组合总数 经典回溯算法原创 2022-04-15 13:02:18 · 89 阅读 · 0 评论 -
leetcode (回溯算法,中等难度)77. 组合
leetcode-77-组合原创 2022-04-12 15:43:40 · 122 阅读 · 0 评论