随笔分类 -  LeetCode刷题总结

摘要:完全背包类型的例题 Leetcode518-零钱兑换二 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 输入:amount = 5, 阅读全文
posted @ 2022-04-19 11:27 fao99 阅读(20) 评论(0) 推荐(0) 编辑
摘要:Leetcode474-1和0 给你一个二进制字符串数组 strs 和两个整数 m 和 n 。请你找出并返回 strs 的最大子集的长度,该子集中 最多 有 m 个 0 和 n 个 1 。如果 x 的所有元素也是 y 的元素,集合 x 是集合 y 的 子集 。 输入:strs = ["10", "0 阅读全文
posted @ 2022-04-19 10:41 fao99 阅读(36) 评论(0) 推荐(0) 编辑
摘要:Leetcode416-分割等和子集 给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。 输入:nums = [1,5,11,5] 输出:true //二维数组版 public boolean canPartition(int[] 阅读全文
posted @ 2022-04-18 13:28 fao99 阅读(28) 评论(0) 推荐(0) 编辑
摘要:01背包二维数组 无遍历顺序要求 可先遍历物品再重量,也可先重量再物品;但先物品较好理解 //二维数组的01背包 public static void getValue(int W,int[] weight,int[]value) { int N=value.length; int dp[][]= 阅读全文
posted @ 2022-04-17 13:20 fao99 阅读(197) 评论(0) 推荐(0) 编辑
摘要:带排序的贪心例题 需要注意 怎么排序?降序还是升序 几维排序?二维数组两个维度是否需要都排序 是否需要辅助队列?通常需要用到LinkedLIst list.add(index,value);//在指定Index插入value list.toArray(new int[list.size()][]); 阅读全文
posted @ 2022-04-16 11:39 fao99 阅读(31) 评论(0) 推荐(0) 编辑
摘要:贪心经典例题 Leetcode134-加油站 在一条环路上有 n 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。 给定两个整数数组 gas 阅读全文
posted @ 2022-04-16 11:38 fao99 阅读(26) 评论(0) 推荐(0) 编辑
摘要:动态规划经典例题 Leetcode509-斐波那契数 斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和、 public int fib(int n) { if(n==0){ return 0; } if(n==1) 阅读全文
posted @ 2022-04-14 11:05 fao99 阅读(49) 评论(0) 推荐(0) 编辑
摘要:Leetcode53-最大子数组和 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组 是数组中的一个连续部分。 输入:nums = [-2,1,-3,4,-1,2,1,-5,4] 输出:6 解释:连续子数组 [4,-1,2,1] 的和 阅读全文
posted @ 2022-04-13 19:46 fao99 阅读(46) 评论(0) 推荐(0) 编辑
摘要:二叉搜索树的插入删除修剪 Leetcode701-二叉搜索树中的插入操作 给定二叉搜索树(BST)的根节点 root 和要插入树中的值 value ,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据 保证 ,新值和原始二叉搜索树中的任意节点值都不同。 注意,可能存在多种有效的插入方式, 阅读全文
posted @ 2022-04-13 10:31 fao99 阅读(46) 评论(0) 推荐(0) 编辑
摘要:树最近公共祖先以及递归中带TreeNode 但递归时返回TreeNode要想清楚最后一步返回到哪 Leetcode236-二叉树的最近公共祖先 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 输入:root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q 阅读全文
posted @ 2022-04-12 15:38 fao99 阅读(23) 评论(0) 推荐(0) 编辑
摘要:构建二叉树例题 Leetcode106-从中序与后序遍历序列构建二叉树 给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 输入:inorder = [9,3,15,20,7], 阅读全文
posted @ 2022-04-12 10:16 fao99 阅读(27) 评论(0) 推荐(0) 编辑
摘要:二叉树中递归式值传递和引用传递 在java中基本类型都是值传递,而非基本类型都是引用传递 int是值传递,每次递归调用方法都是传入一个值,递归调用结束之后,并不会影响原来的值,即不存在分支污染问题 String本身是引用传递,但是他比较特殊,String是final的,每次+或者赋值其实都是生成了一 阅读全文
posted @ 2022-04-12 10:04 fao99 阅读(58) 评论(0) 推荐(0) 编辑
摘要:二叉树中的递归例题 Leetcode226-翻转二叉树 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点 输入:root = [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1] //递归先序遍历的变形 public class L226 { public Tree 阅读全文
posted @ 2022-04-09 12:50 fao99 阅读(25) 评论(0) 推荐(0) 编辑
摘要:排列问题 和子集问题以及组合问题不同的是每次回溯都要从头来 这样就要对当前元素筛选了,如果之前已经排列过了就要跳过这个元素 最常用的筛选方法就是boolean数组或者hashset Leetcode46-全排列 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 阅读全文
posted @ 2022-04-07 15:21 fao99 阅读(37) 评论(0) 推荐(0) 编辑
摘要:回溯之子集问题 子集问题和组合问题特别像 Leetcode78-子集 给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集) 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集 输入:nums = [1,2,3] 输出:[[],[1],[2],[1,2],[3 阅读全文
posted @ 2022-04-07 12:23 fao99 阅读(33) 评论(0) 推荐(0) 编辑
摘要:Leetcode216-组合总和三 找出所有相加之和为 n 的 k 个数的组合,且满足下列条件: 只使用数字1到9 每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次,组合可以以任何顺序返回 输入: k = 3, n = 7 输出: [[1,2,4]] Array 阅读全文
posted @ 2022-04-07 11:53 fao99 阅读(112) 评论(0) 推荐(0) 编辑
摘要:Leetcode102-二叉树的层序遍历 List<List<Integer>> res=new ArrayList<>(); public List<List<Integer>> levelOrder(TreeNode root) { if (root==null) return res; els 阅读全文
posted @ 2022-04-06 11:07 fao99 阅读(37) 评论(0) 推荐(0) 编辑
摘要:Leetcode144-前序遍历 递归版 List<Integer> res = new ArrayList<>(); public List<Integer> preorderTraversal(TreeNode root) { preorder(root); return res; } publ 阅读全文
posted @ 2022-04-06 10:03 fao99 阅读(26) 评论(0) 推荐(0) 编辑
摘要:String与char数组与StringBuffer 通常情况下遇到删除字符或者反转字符串时需要将String转为char数组或者StringBuffer String与char数组 char [] stringArr = string.toCharArray(); char[] charArray 阅读全文
posted @ 2022-04-05 14:10 fao99 阅读(81) 评论(0) 推荐(0) 编辑
摘要:1 Java中的栈 可以用Stack类也可以用LinkedList类 但LinkedList更加方便 public static void main(String[] args) { LinkedList<Integer> stack = new LinkedList<>(); stack.addF 阅读全文
posted @ 2022-04-03 10:42 fao99 阅读(37) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示