随笔分类 - 刷题
摘要:class Solution { public: int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) { int left = max(A,E), right = max(min(C,G), left); int bottom = max(B,F), top = max(min(D,H), bottom);
阅读全文
摘要:class Solution { public: vector> findLeaves(TreeNode* root) { vector> res; while (root) { vector leaves; root = remove(root, leaves); res.p...
阅读全文
摘要:二分查找时间复杂度 partition时间复杂度 O(n) = O(n) + O(n/2) + O(n/4)+.... 然后用等比求和公式得出是O(2n),即O(n)
阅读全文
摘要:968. Binary Tree Cameras 思路:如果子节点只能覆盖到父节点、当前节点,但是父节点可以覆盖到他的父节点、子节点、当前节点,所以从叶子节点往上考虑 0代表子节点没有被覆盖 1代表子节点被覆盖,但是子节点没有camera 2代表子节点被覆盖,子节点有camera https://w
阅读全文
摘要:946. Validate Stack Sequences
阅读全文
摘要:786. K-th Smallest Prime Fraction https://www.cnblogs.com/grandyang/p/9135156.html 数组本身是排序的,所以固定一个数,从左向右得到的分数是逐渐减小的。 使用二分查找,设定一个值,然后统计所有小于这个数的个数,如果个数小
阅读全文
摘要:参考代码:https://leetcode.com/problems/number-of-matching-subsequences/discuss/117575/C++-12-Line-Solution-with-Explanation 思路:把每个S的字符的下标存储下来,同一个单词存储多个位置。
阅读全文
摘要:给一个权重的vector,让你根据权重的概率返回值,返回的值是这些权重的索引。 比如给你一个[1,2]的权重矩阵,1/3的概率返回0,2/3的概率返回1。 等概率函数random只能等概率的一系列数,所以需要将权重矩阵进行累加,即[1,2]变成[1,3],这样如果你用random生成的等概率数是0,
阅读全文
摘要:977. Squares of a Sorted Array 因为A是一个排序数组,且可能存在正负,那么平方最大的数一定在两头。所以使用双指针,同时申请一个数组,从数组的后往前排,每次排的数是两个指针中绝对值较大的那个数。 双指针,时间复杂度是O(n)
阅读全文
摘要:自己写的一个代码,注意这里判断是否是根节点前,应该把当前节点的value值push_back到res中
阅读全文
摘要:10. Regular Expression Matching https://www.cnblogs.com/grandyang/p/4461713.html 44. Wildcard Matching https://www.cnblogs.com/grandyang/p/4401196.htm
阅读全文
摘要:266.Palindrome Permutation https://www.cnblogs.com/grandyang/p/5223238.html 判断一个字符串的全排列能否形成一个回文串。 能组成回文串,在字符串长度为偶数的情况下,每个字符必须成对出现;奇数的情况下允许一个字符单独出现,其他字
阅读全文
摘要:464. Can I Win https://www.cnblogs.com/grandyang/p/6103525.html 用递归的方式进行搜索,用hash表减少搜索的次数。因为数字不超过20,所以可以用一个int的位来表示是否访问过。 注意: (cur & used) == 0这个地方必须加括
阅读全文
摘要:11. Container With Most Water https://www.cnblogs.com/grandyang/p/4455109.html 用双指针向中间滑动,较小的高度就作为当前情况的高度,然后循环找容量的最大值。 不管两个指针中间有多少高度的柱子,只管两头,因为两头的才决定最大
阅读全文
摘要:312. Burst Balloons https://www.cnblogs.com/grandyang/p/5006441.html 这道题提出了一种打气球的游戏,每个气球都对应着一个数字,我们每次打爆一个气球,得到的金币数是被打爆的气球的数字和其两边的气球上的数字相乘,如果旁边没有气球了,则按
阅读全文
摘要:576. Out of Boundary Paths 给你一个棋盘,并放一个东西在一个起始位置,上、下、左、右移动,移动n次,一共有多少种可能移出这个棋盘 https://www.cnblogs.com/grandyang/p/6927921.html dp表示上一次移动,所有位置的路径数;t表示的
阅读全文
摘要:https://www.cnblogs.com/grandyang/p/4273700.html sum代表当前节点的和。 这个题要从上往下的思路去做。
阅读全文
摘要:542. 01 Matrix https://www.cnblogs.com/grandyang/p/6602288.html 将所有的1置为INT_MAX,然后用所有的0去更新原本位置为1的值。 最短距离肯定使用bfs。 每次更新了值的地方还要再加入队列中 。 663. Walls and Gat
阅读全文
摘要:402. Remove K Digits https://www.cnblogs.com/grandyang/p/5883736.html https://blog.csdn.net/fuxuemingzhu/article/details/81034522 https://blog.csdn.ne
阅读全文
摘要:139. Word Break 字符串能否通过划分成词典中的一个或多个单词。 使用动态规划,dp[i]表示当前以第i个位置(在字符串中实际上是i-1)结尾的字符串能否划分成词典中的单词。 j表示的是以当前i的位置往前找j个单词,如果在j个之前能正确分割,那只需判断当前这j单词能不能在词典中找到单词。
阅读全文