#Leetcode

https://leetcode.com/problems/palindromic-substrings/description/

https://www.cnblogs.com/grandyang/p/7404777.html博客中写的<=2,实际上<=1也是可以的相当于判断一个大指针内所有子字符串是否可能为回文classSolution{public:intcountSubstrings(strings){intlength=s.s...

leetcode 621. Task Scheduler

https://www.cnblogs.com/grandyang/p/7098764.html将个数出现最多的那个字符作为分隔的标准,一定是最小的。所以这个时候只需要计算还需要添加多少个idel就能找到整个的个数。方法是:先计算个数最多的字符,并且判断有没有跟他个数相同的,如果这个字符出现的次数是3次,那其实只需要中...
代码星球 ·2020-10-13

leetcode 235. Lowest Common Ancestor of a Binary Search Tree 236. Lowest Common Ancestor of a Binary Tree

https://www.cnblogs.com/grandyang/p/4641968.htmlhttp://www.cnblogs.com/grandyang/p/4640572.html利用二叉搜索树的性质:左子树所有节点小于根节点,右子树所有节点大于根节点如果两个节点的最大值小于根节点,那最低公共祖先一定在左子树...

leetcode46. Permutations 、47. Permutations II、 剑指offer字符串的排列

 字符串排列和PermutationsII差不多Permutations第一种解法:这种方法从0开始遍历,通过visited来存储是否被访问到,level代表每次已经存储了多少个数字时间复杂度O(n!)classSolution{public:vector<vector<int>>pe...

leetcode 96. Unique Binary Search Trees 、95. Unique Binary Search Trees II 、241. Different Ways to Add Parentheses

96.UniqueBinarySearchTreeshttps://www.cnblogs.com/grandyang/p/4299608.html3由dp[1]*dp[1]、dp[0]*dp[2]、dp[2]*dp[0]相加而成从2开始classSolution{public:intnumTrees(intn){ve...

leetcode 338. Counting Bits,剑指offer二进制中1的个数

leetcode是求当前所有数的二进制中1的个数,剑指offer上是求某一个数二进制中1的个数https://www.cnblogs.com/grandyang/p/5294255.html第三种方法,利用奇偶性找规律 classSolution{public:vector<int>countBi...

leetcode 322. Coin Change

 https://www.cnblogs.com/grandyang/p/5138186.html状态方程为dp[i]=min(dp[i-1],dp[i-2],dp[i-3]),可能会造成下标为负的情况。如果出现下标为负,这种情况跳过不计算就好了。同时,有些金额换不出来。所以在初始化的时候,所有的零钱先初始化...
代码星球 ·2020-10-13

leetcode 560. Subarray Sum Equals K 、523. Continuous Subarray Sum、 325.Maximum Size Subarray Sum Equals k(lintcode 911)

整体上3个题都是求subarray,都是同一个思想,通过累加,然后判断和目标k值之间的关系,然后查看之前子数组的累加和。map的存储:560题是存储的当前的累加和与个数      561题是存储的当前累加和的余数与第一次出现这个余数的位置      325题存储的是当前累加和与第一次出现这个和的位置其实561与325都...

leetcode 79. Word Search 、212. Word Search II

 https://www.cnblogs.com/grandyang/p/4332313.html在一个矩阵中能不能找到string的一条路径  这个题使用的是dfs。但这个题与numberofislands有点不同,那个题中visited过的就不用再扫了,但是这个需要进行回溯回来。所以使...

leetcode538. Convert BST to Greater Tree

https://www.cnblogs.com/grandyang/p/6591526.html这个题本质上是中序遍历的反向。中序遍历是从小到大,而这个题目是从大到小,然后每个数加上比自己大的所有数的和。因为实际上并没有改变树的结构,只是改变了原来树中节点的值,所以用void做返回值就可以了。每次加sum实际上就是加的...

leetcode 280.Wiggle Sort 、324. Wiggle Sort II

这两个题可以理解为奇数位大于相邻两个偶数位,这两个题的输入数组是相同的,即数组中数值无序,且可能有相等的数值。但WiggleSortII要求是奇偶位的只能大于,不能等于。无论是280.WiggleSort还是324.WiggleSortII,都可以通过排序,然后以中间值为分界分成a、b两部分,每次先从a中选择一个数,然...

leetcode 146. LRU Cache 、460. LFU Cache

LRU算法是首先淘汰最长时间未被使用的页面,而LFU是先淘汰一定时间内被访问次数最少的页面,如果存在使用频度相同的多个项目,则移除最近最少使用(LeastRecentlyUsed)的项目。LFU在频度相同的时候与LRU类似。  146.LRUCache 1.stl中list是双向链表,sl...

leetcode 76. Minimum Window Substring

用unordered_map存储t中的字符和存储的次数,l是字符串最左边的字符的位置,r是字符串最右边字符的位置,count是s中从l到r这一区间成功匹配t中字符个数。当count的个数跟t的大小一样大(也就是成功匹配),就将当前子串的size和min_size比较以更新min_size,会出现一种情况,l位置的字符并...

leetcode 4. Median of Two Sorted Arrays

将找两个排序数组的中间值转换为找两个数组的第k小的数,findKthNumber是在两个数组中找第k小的数。每次找k/2个数,如果一个数组最末尾那个小于另一个,那这个数组的前面部分肯定属于整个k/2里面。start2+mid+1每次加了1,说明start1、start2都是新的数,属于当前的k的数,所以mid要用k/2...

leetcode 148. Sort List

https://leetcode.com/problems/sort-list/discuss/46714/Java-merge-sort-solution链表初始化代码:ListNode*origin=newListNode(0);此题要求时间复杂度是o(nlogn),空间复杂度是o(1),快排最高时间复杂度可能到达...
代码星球 ·2020-10-13
首页上一页...2021222324...下一页尾页