摘要:一.朴素的dfs 解法 ,回溯法 思路:每个格子有两种状态 ,选和不选, 用0和1 表示,相当于01整数规划问题 约束条件:若一个格子被选,则相邻格子不能被选 用一个 vis 数组来表示 然后逐行逐列扫描,挨个枚举,每个格子的状态,然后根据约束来剪枝 第一行的合法情况 每使用一个格子,将其周围的8个
阅读全文
摘要:一.利用分治法来求数组的最大值 以 洛谷B2057 最高的分数为例 一般的朴素做法 #include<iostream> using namespace std; int main(){ int n; cin>>n; int a[n]; int max = 0; for(int i=0;i<n;i+
阅读全文
摘要:一.克隆链表 public class GraphCloneTest1 { public static void main(String[] args) { int[] l = new int[]{1,2,3,4,5,6}; ListNode build = build(l, 0); LinkLis
阅读全文
摘要:一.情景一 假设有一个bool类型的数组 choices, 每个元素只有true和false两种状态可选 求:所有的组合情况 ,由排列组合可知道 有 2x2x2=8种情况 代码如下 public class Main { public static void main(String[] args)
阅读全文
摘要:一.递归遍历二维数组,即深度优先搜索 主要是向右,向下搜索 public class DFSTest1 { public static void main(String[] args) { int[][] a1 = new int[][]{ {1,2,3,4}, {5,6,7,8}, {9,10,1
阅读全文
摘要:一.递归遍历数组 public class Graph4Test { public static void main(String[] args) { int[] a1 = new int[]{1,2,3,4,5,6}; preOrder(a1,0); System.out.println(); p
阅读全文
摘要:一.描述 通过二叉树带条件的求和来更好的理解递归 可以参考前两篇文章 一个简单的二叉树的例子来理解递归 二叉树和BST的递归,带条件 二.左叶子求和 来源:https://leetcode-cn.com/problems/sum-of-left-leaves/ 题意为求左叶子节点的值的和 之前文章提
阅读全文
摘要:一.描述 还是举二叉树求和的例子,但这次是带了条件。 可以先看上一篇二叉树求和的文章 二.图解分析 思路和普通二叉树求和一样,用当前节点的值加上左子树和右子树 Sum = cur.val + cur.left.val + cur.right.val 若不满足条件的就是 Sum =cur.left.v
阅读全文
摘要:一.介绍 回溯法不是这个题的标准答案和最优解法,主要是理解回溯法的思路 问题描述 输入 (这里的A,B,C,D可以是任意长度的数组) A = [ 1, 2] B = [-2,-1] C = [-1, 2] D = [ 0, 2]求使 A[i] + B[j] + C[k] + D[l] = 0 的解的
阅读全文
摘要:一.描述 一个简单的二叉树的例子,比如求二叉树的所有节点的和 比如下面这棵树,所有节点的和为 1+2+3=6 二.递归法来求解 通过树的结构可以得到解法,即总和为当前节点的和加上左节点的和加上右节点的和 即 Sum = cur.val + cur.left.val + cur.right.val 根
阅读全文
摘要:一.题源 https://leetcode-cn.com/problems/path-sum-ii/ 二.递归的栈特性 先看下面的一个链表的例子 public class LinkListTest2 { public static void main(String[] args) { ListNod
阅读全文
摘要:一.题源 https://www.lintcode.com/problem/permutations-ii/description https://leetcode-cn.com/problems/permutations-ii/ 二.代码分析 1 public class Solution { 2
阅读全文
摘要:一.题源 https://www.lintcode.com/problem/permutations/description https://leetcode-cn.com/problems/permutations/ 二.代码 1 public class Solution { 2 public
阅读全文
摘要:一.题源 https://www.lintcode.com/problem/subsets-ii/description https://leetcode-cn.com/problems/subsets-ii/ 不同于子集I,这次有一点小变化,就是在算法中加入了条件判断,即去除重复元素。将不满足的条
阅读全文
摘要:一.题源 https://www.lintcode.com/problem/subsets/description https://leetcode-cn.com/problems/subsets/ 二.代码 public class Solution { public static void ma
阅读全文