LC 动态规划-背包问题-416
方法1.可以采用一个二维数组存放该数组中的数相加所能到达的每个数值,最后判断是否有target.public boolean canPartition(int[] nums) { int len = nums.length; if(len == 1){ return false; } if(len == 2){ return nums
方法1.可以采用一个二维数组存放该数组中的数相加所能到达的每个数值,最后判断是否有target.public boolean canPartition(int[] nums) { int len = nums.length; if(len == 1){ return false; } if(len == 2){ return nums
1.斐波那契数一.常见的递归解法public int fib(int n) { if(n == 0){ return 0; } if(n == 1){ return 1; } return fib(n-1) + fib(n-2); } 此方法严重浪费内存和时间,可利用数组对其优化.二.数组解法 if(n == 0){
public int[][] merge(int[][] intervals) { if(intervals.length == 1 ){ return intervals; } List<int[]> res = new LinkedList<>(); //自定义数组排列规则 Arrays.sort(interval
有效 二叉搜索树定义如下:节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。因此,这道题,必须从最底部开始遍历。如果从上往下遍历的话,很容易让第三个定义不满足。1.递归class Solution { public boolean isValidBST(TreeNode root) { return i
呵呵,java的骚操作太多了...public int[] intersect(int[] nums1, int[] nums2) { /** * 将Nums1中的元素放入list1中 */ List<Integer> list1 = Arrays.stream(nums1).boxed().collect(Collectors.toList());