![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
文章平均质量分 58
jacklovemonica
这个作者很懒,什么都没留下…
展开
-
LeetCode_63
LeetCode_63题意以及限制条件想到的所有可能解法对应的代码测试样例题意以及限制条件题目:限制条件:想到的所有可能解法Ways_1——DP1(顺推)时间复杂度——O(mn);空间复杂度——O(n)。Ways_2——DP2(逆推)时间复杂度——O(mn);空间复杂度——O(n)。Ways_3——DP3(顺推)时间复杂度——O(mn);空间复杂度——O(mn)。Ways_4——DP4(逆推)时间复杂度——O(mn);空间复杂度——O(mn原创 2021-03-15 22:35:05 · 144 阅读 · 0 评论 -
LeetCode_62
LeetCode_62题意以及限制条件想到的所有可能解法对应的代码测试样例题意以及限制条件题目:限制条件:想到的所有可能解法Ways_1——排列组合时间复杂度——O(m);空间复杂度——O(1)。基础知识:此代码模板为计算组合数的通用代码模板。Ways_2——DP1(顺推)时间复杂度——O(mn);空间复杂度——O(n)。Ways_3——DP2(逆推)时间复杂度——O(mn);空间复杂度——O(n)。Ways_4——DP3(顺推)时间复原创 2021-03-15 22:20:38 · 133 阅读 · 0 评论 -
LeetCode_236
LeetCode_236题意以及限制条件想到的所有可能解法对应的代码测试样例题意以及限制条件题目:限制条件:想到的所有可能解法Ways_1——递归时间复杂度——O(n);空间复杂度——O(n)。对应的代码Ways_1class Solution { public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) { if (root ==原创 2021-03-10 15:05:20 · 107 阅读 · 0 评论 -
LeetCode_17
LeetCode_17题意以及限制条件想到的所有可能解法对应的代码测试样例题意以及限制条件题目:限制条件:想到的所有可能解法Ways_1——回溯时间复杂度——O(3m3^m3m X 4n4^n4n),其中 m 是输入中对应 3个字母的数字个数(包括数字 2、3、4、5、6、8),n是输入中对应 4个字母的数字个数(包括数字 7、9);空间复杂度——O(m + n),m+n是输入数字的总个数。对应的代码Ways_1class Solution { pu原创 2021-03-10 14:55:47 · 120 阅读 · 0 评论 -
LeetCode_169
LeetCode_169题意以及限制条件想到的所有可能解法对应的代码测试样例题意以及限制条件题目:限制条件:想到的所有可能解法Ways_1——Boyer-Moore Majority Vote Algorithm时间复杂度——O(n);空间复杂度——O(1)。对应的代码Ways_1class Solution { public int majorityElement(int[] nums) { int len = nums.length原创 2021-03-10 14:36:59 · 80 阅读 · 0 评论 -
LeetCode_22
LeetCode_22题意以及限制条件想到的所有可能解法对应的代码测试样例题意以及限制条件题目:限制条件:1 <= n <= 8想到的所有可能解法Ways_1——回溯时间复杂度——O(n);空间复杂度——O(n)。对应的代码Ways_1class Solution { public List<String> generateParenthesis(int n) { List<String> list =原创 2021-03-10 14:27:04 · 167 阅读 · 0 评论 -
回溯相关题型总结
回溯相关题型总结题目汇总解题关键点目前已知运行最为高效的代码题目汇总LeetCode_78:子集LeetCode_90:子集IILeetCode_46:全排列LeetCode_47:全排列IILeetCode_39:组合总和LeetCode_40:组合总和IILeetCode_131:分割回文串LeetCode_77:组合解题关键点这些题的共同之处在于都可用统一的代码模板规范性的求解;不同之处在于递归结束条件以及下探到下一层所要传递的参数不同。目前已知运行最为高效的代码原创 2021-03-09 10:29:34 · 74 阅读 · 1 评论 -
LeetCode_131
LeetCode_131题意以及限制条件想到的所有可能解法对应的代码测试样例题意以及限制条件题目:限制条件:想到的所有可能解法Ways_1——回溯时间复杂度——O(n);空间复杂度——O(n)。对应的代码Ways_1class Solution { public List<List<String>> partition(String s) { List<List<String>> list原创 2021-03-07 15:50:22 · 111 阅读 · 4 评论 -
LeetCode_40
LeetCode_40题意以及限制条件想到的所有可能解法对应的代码测试样例题意以及限制条件题目:限制条件:想到的所有可能解法Ways_1——回溯时间复杂度——O(n*logn);空间复杂度——O(n)。对应的代码Ways_1class Solution { public List<List<Integer>> combinationSum2(int[] candidates, int target) { List原创 2021-03-07 15:45:27 · 80 阅读 · 0 评论 -
LeetCode_39
LeetCode_39题意以及限制条件想到的所有可能解法对应的代码测试样例题意以及限制条件题目:限制条件:想到的所有可能解法Ways_1——回溯时间复杂度——O(n);空间复杂度——O(n)。对应的代码Ways_1class Solution { public List<List<Integer>> combinationSum(int[] nums, int target) { List<List<原创 2021-03-07 15:37:28 · 91 阅读 · 0 评论 -
LeetCode_47
LeetCode_47题意以及限制条件想到的所有可能解法对应的代码测试样例题意以及限制条件题目:限制条件:想到的所有可能解法Ways_1——回溯时间复杂度——O(n*logn);空间复杂度——O(n);求解集合{1,1,1,2}的全排列的回溯过程如下:对应的代码Ways_1class Solution { public List<List<Integer>> permuteUnique(int[] nums) {原创 2021-03-07 15:31:20 · 56 阅读 · 0 评论 -
LeetCode_46
LeetCode_46题意以及限制条件想到的所有可能解法对应的代码测试样例题意以及限制条件题目:限制条件:想到的所有可能解法Ways_1——回溯时间复杂度——O(n);空间复杂度——O(n)。对应的代码Ways_1class Solution { public static List<List<Integer>> permute(int[] nums) { List<List<Integer>&原创 2021-03-07 15:22:30 · 50 阅读 · 0 评论 -
LeetCode_77
LeetCode_77题意以及限制条件想到的所有可能解法对应的代码测试样例题意以及限制条件题目:限制条件:想到的所有可能解法Ways_1——回溯时间复杂度——O(n);空间复杂度——O(n)。对应的代码Ways_1class Solution { public List<List<Integer>> combine(int n, int k) { List<List<Integer>> l原创 2021-03-07 15:15:47 · 98 阅读 · 1 评论 -
LeetCode_90
LeetCode_90题意以及限制条件想到的所有可能解法对应的代码测试样例题意以及限制条件题目:限制条件:想到的所有可能解法Ways_1——回溯时间复杂度——O(n*logn);空间复杂度——O(n)。对应的代码Ways_1class Solution { public List<List<Integer>> subsetsWithDup(int[] nums) { List<List<Integer>原创 2021-03-07 15:08:41 · 122 阅读 · 0 评论 -
LeetCode_78
LeetCode_78题意以及限制条件想到的所有可能解法对应的代码测试样例题意以及限制条件题目:限制条件:想到的所有可能解法Ways_1——回溯时间复杂度——O(n);空间复杂度——O(n)。求解集合{1,2,3}子集的回溯过程示意图:对应的代码Ways_1class Solution { public List<List<Integer>> subsets(int[] nums) { List<List<原创 2021-03-07 14:59:39 · 58 阅读 · 0 评论 -
LeetCode_50
LeetCode_50题意以及限制条件想到的所有可能解法对应的代码测试样例题意以及限制条件题目:限制条件:想到的所有可能解法Ways_1——递归时间复杂度——O(n);空间复杂度——O(n)。Ways_2——迭代时间复杂度——O(n);空间复杂度——O(n)。对应的代码Ways_1class Solution { public double myPow(double x, int n) { long N = n; r原创 2021-03-07 14:46:58 · 85 阅读 · 0 评论 -
LeetCode_297
LeetCode_297题意以及限制条件想到的所有可能解法对应的代码测试样例题意以及限制条件题目:限制条件:想到的所有可能解法Ways_10. 时间复杂度——O(n);空间复杂度——O(n),n为结点的数量。对应的代码Ways_1class Codec { private static final String spliter = ","; private static final String NN = "X"; // Encodes原创 2021-03-07 14:32:35 · 73 阅读 · 3 评论 -
LeetCode_111
LeetCode_111题意以及限制条件想到的所有可能解法对应的代码测试样例题意以及限制条件题目:限制条件:想到的所有可能解法Ways_1——递归时间复杂度——O(n);空间复杂度——O(n)。对应的代码Ways_1class Solution { public int minDepth(TreeNode root) { //Terminator if (root == null) return 0;原创 2021-03-05 07:34:05 · 84 阅读 · 1 评论 -
LeetCode_104
LeetCode_104题意以及限制条件想到的所有可能解法对应的代码测试样例题意以及限制条件题目:限制条件:想到的所有可能解法Ways_1——递归时间复杂度——O(n);空间复杂度——O(n)。对应的代码Ways_1class Solution { public int maxDepth(TreeNode root) { //Teerminator if (root == null) return 0; //Cu原创 2021-03-05 07:34:32 · 103 阅读 · 1 评论 -
LeetCode_98
LeetCode_98题意以及限制条件想到的所有可能解法对应的代码测试样例题意以及限制条件题目:限制条件:想到的所有可能解法Ways_1——递归时间复杂度——O(n);空间复杂度——O(n)。对应的代码Ways_1class Solution { public boolean isValidBST(TreeNode root) { return isValid(root, Long.MIN_VALUE, Long.MAX_VA原创 2021-03-04 16:24:18 · 106 阅读 · 1 评论 -
LeetCode_226
LeetCode_226题意以及限制条件想到的所有可能解法对应的代码测试样例题意以及限制条件题目:想到的所有可能解法Ways_1——动态规划_1:利用“自顶向下”的思想来解决本题,即“动态递推”时间复杂度——O(n);空间复杂度——O(1)当楼梯阶数非正整数时,直接返回0当楼梯阶数不大于2,返回输入的阶数当输入的阶数n大于2,要到达第n阶台阶,仅可能源自(n-1)或(n-2)阶台阶onestep_before:表示到达第(n-1)阶台阶的方法数量twosteps_before:原创 2021-03-04 16:16:28 · 84 阅读 · 1 评论 -
LeetCode_429
LeetCode_429题意以及限制条件想到的所有可能解法对应的代码测试样例题意以及限制条件题目:限制条件:想到的所有可能解法Ways_1——递归时间复杂度——O(n);空间复杂度——O(n)。Ways_2——使用队列时间复杂度——O(n);空间复杂度——O(n)。对应的代码Ways_1class Solution { public List<List<Integer>> levelOrder(Node root)原创 2021-03-04 16:03:19 · 99 阅读 · 1 评论 -
LeetCode_102
LeetCode_102题意以及限制条件想到的所有可能解法对应的代码测试样例题意以及限制条件题目:限制条件:想到的所有可能解法Ways_1——使用队列时间复杂度——O(n);空间复杂度——不会超过O(n)。对应的代码Ways_1class Solution { public List<List<Integer>> levelOrder(TreeNode root) { List<List<Integer>原创 2021-03-04 15:38:16 · 72 阅读 · 1 评论 -
LeetCode_590
LeetCode_590题意以及限制条件想到的所有可能解法对应的代码测试样例题意以及限制条件题目:限制条件:想到的所有可能解法Ways_1——递归时间复杂度——O(n);空间复杂度——O(n)。对应的代码Ways_1class Solution { public List<Integer> postorder(Node root) { //Terminator if (root == null) return原创 2021-03-04 15:25:17 · 77 阅读 · 1 评论 -
LeetCode_589
LeetCode_589题意以及限制条件想到的所有可能解法对应的代码测试样例题意以及限制条件题目:限制条件:想到的所有可能解法Ways_1——递归时间复杂度——O(n);空间复杂度——O(n)。对应的代码Ways_1class Solution { private List<Integer> res =new ArrayList<Integer>(); public List<Integer> preorde原创 2021-03-04 15:17:04 · 74 阅读 · 1 评论 -
环形链表相关题型总结
环形链表相关题型总结题目汇总解题关键点目前已知运行最为高效的代码题目汇总LeetCode_141:判断链表是否有环?LeetCode_142:找到环形链表的入口求出环形链表的长度将环形链表变成单链表解题关键点第1题的关键在于利用快慢指针,若快指针能追上慢指针,则说明有环;第2题的关键在于当快慢指针第一次相遇时,再利用一个新的entry指针指向head,让其与慢指针slow同频率前进直到相遇,则相遇点即为环形链表的入口;第3题主流的解法有两种:当快慢指针第一次相遇之后,让快指针停住原创 2021-03-04 14:57:21 · 90 阅读 · 1 评论 -
LeetCode_145
LeetCode_145题意以及限制条件想到的所有可能解法对应的代码题意以及限制条件题目:限制条件:想到的所有可能解法Ways_1——Morris遍历时间复杂度——O(n);空间复杂度——O(1)。Ways_2——递归时间复杂度——O(n);空间复杂度——O(n)。对应的代码Ways_1class Solution { public List<Integer> postorderTraversal(TreeNode root)原创 2021-03-04 07:53:21 · 101 阅读 · 1 评论 -
LeetCode_94
LeetCode_94题意以及限制条件想到的所有可能解法对应的代码测试样例题意以及限制条件题目:限制条件:想到的所有可能解法Ways_1——Morris遍历时间复杂度——O(n);空间复杂度——O(1)。Ways_2——递归时间复杂度——O(n);空间复杂度——O(n)。对应的代码Ways_1class Solution { public List<Integer> inorderTraversal(TreeNode root)原创 2021-03-04 07:40:43 · 113 阅读 · 1 评论 -
LeetCode_144
LeetCode_144题意以及限制条件想到的所有可能解法对应的代码测试样例题意以及限制条件题目:限制条件:想到的所有可能解法Ways_1——Morris遍历时间复杂度——O(n);空间复杂度——O(1)。Ways_2——递归。时间复杂度——O(n);空间复杂度——O(n)。对应的代码Ways_1class Solution { public List<Integer> preorderTraversal(TreeNode ro原创 2021-03-04 07:14:06 · 77 阅读 · 1 评论 -
LeetCode_347
LeetCode_347题意以及限制条件想到的所有可能解法对应的代码测试样例题意以及限制条件题目:限制条件:想到的所有可能解法Ways_1——HashMap、Map.Entry、QuickSelect平均 时间复杂度——O(n);空间复杂度——O(n)。Ways_2——基于PriorityQueue的小顶堆时间复杂度——O(n*logk);空间复杂度——O(n)。Ways_3——HashMap、Map.Entry、TreeMap时间复杂度——O(n*l原创 2021-03-01 21:40:11 · 62 阅读 · 0 评论 -
LeetCode_215
LeetCode_215题意以及限制条件想到的所有可能解法对应的代码测试样例题意以及限制条件题目:限制条件:You may assume k is always valid, 1 ≤ k ≤ array’s length.想到的所有可能解法Ways_1——QuickSelect平均时间复杂度——O(n);空间复杂度——O(1);最坏时间复杂度——O(n2n^2n2)。对应的代码Ways_1class Solution { public int原创 2021-03-01 20:48:11 · 90 阅读 · 0 评论 -
LeetCode_283
LeetCode_283题意以及限制条件想到的所有可能解法对应的代码测试样例题意以及限制条件题目:限制条件:想到的所有可能解法Ways_1——Two Pointers(先筛选出“非0”元素,剩余元素统一赋值为0)时间复杂度——O(n);空间复杂度——O(1)。Ways_2——Two Pointers(遇到“非0”元素就交换,两指针之间均为0)时间复杂度——O(n);空间复杂度——O(1)。对应的代码Ways_1class Solution {原创 2021-02-23 15:11:03 · 45 阅读 · 0 评论 -
LeetCode_26
LeetCode_26题意以及限制条件想到的所有可能解法对应的代码测试样例题意以及限制条件题目:限制条件:想到的所有可能解法Ways_1——Two Pointers时间复杂度——O(n);空间复杂度——O(1);隔项重复才赋值。对应的代码Ways_1class Solution { public int removeDuplicates(int[] nums) { int len = nums.length; int原创 2021-02-23 11:24:03 · 45 阅读 · 0 评论 -
LeetCode_88
LeetCode_88题意以及限制条件想到的所有可能解法对应的代码测试样例题意以及限制条件题目:限制条件:想到的所有可能解法Ways_1——Two Pointers(From end to start)时间复杂度——O(n);空间复杂度——O(1)。Ways_2——Two Pointers(From start to end)时间复杂度——O(n);空间复杂度——O(m + n)。对应的代码Ways_1class Solution { pu原创 2021-02-23 10:54:02 · 51 阅读 · 0 评论 -
LeetCode_189
LeetCode_189题意以及限制条件想到的所有可能解法对应的代码测试样例题意以及限制条件题目:限制条件:想到的所有可能解法Ways_1——多次翻转时间复杂度——O(n);空间复杂度——O(1)。Ways_2——环状替换时间复杂度——O(n);空间复杂度——O(1)。Ways_3——辅助数组时间复杂度——O(n);空间复杂度——O(n)。对应的代码Ways_1lass Solution { public void r原创 2021-02-23 08:20:24 · 81 阅读 · 0 评论 -
LeetCode_242
LeetCode_242题意以及限制条件想到的所有可能解法对应的代码测试样例题意以及限制条件题目:限制条件:You may assume the string contains only lowercase alphabets.想到的所有可能解法Ways_1——字符数组排序。时间复杂度——O(nlogn);空间复杂度——O(n)。Ways_2——哈希映射。时间复杂度——O(n);空间复杂度——O(n)。对应的代码Ways_1class Solutio原创 2021-02-22 15:41:36 · 59 阅读 · 0 评论 -
LeetCode_66
LeetCode_66题意以及限制条件想到的所有可能解法对应的代码测试样例题意以及限制条件题目:限制条件:想到的所有可能解法Ways_1——从后往前遍历digits数组。时间复杂度——O(n);空间复杂度——O(n)。对应的代码Ways_1class Solution { public int[] plusOne(int[] digits) { int len = digits.length; for (int i =原创 2021-02-22 15:10:14 · 45 阅读 · 0 评论 -
LeetCode_21
LeetCode_21题意以及限制条件想到的所有可能解法对应的代码测试样例题意以及限制条件题目:限制条件:想到的所有可能解法Ways_1——递归时间复杂度——O(n);空间复杂度——O(n)。Ways_2——迭代时间复杂度——O(n);空间复杂度——O(1)对应的代码Ways_1/** * Definition for singly-linked list. * public class ListNode { * int val;原创 2021-02-22 14:48:09 · 74 阅读 · 0 评论 -
LeetCode_641
LeetCode_641题意以及限制条件想到的所有可能解法对应的代码测试样例题意以及限制条件题目:限制条件:想到的所有可能解法Ways_1——基于数组实现循环双端队列时间复杂度——O(1);空间复杂度——O(n)对应的代码Ways_1class MyCircularDeque { int capacity; int[] array; int front; int rear; /** Initialize your d原创 2021-02-21 15:41:55 · 59 阅读 · 0 评论 -
LeetCode_1
LeetCode_1题意以及限制条件想到的所有可能解法对应的代码测试样例题意以及限制条件题目:限制条件:想到的所有可能解法Ways_1——HashMap时间复杂度——O(nnn);空间复杂度——O(n)Ways_2——HashMap时间复杂度——O(n2n^2n2);空间复杂度——O(1)对应的代码Ways_1class Solution { public int[] twoSum(int[] nums, int target) {原创 2021-02-21 15:16:06 · 58 阅读 · 0 评论