
LeetCode题解
Z-Pilgrim
这个作者很懒,什么都没留下…
展开
-
*Leetcode 416. 分割等和子集
Leetcode 416. 分割等和子集原创 2023-02-20 07:10:06 · 71 阅读 · 0 评论 -
*Leetcode 437. 路径总和 III
*Leetcode 437. 路径总和 III原创 2023-02-20 06:50:44 · 114 阅读 · 0 评论 -
*Leetcode 438. 找到字符串中所有字母异位词
Leetcode 438. 找到字符串中所有字母异位词原创 2023-02-19 19:10:03 · 74 阅读 · 0 评论 -
*Leetcode 538. 把二叉搜索树转换为累加树
Leetcode 538. 把二叉搜索树转换为累加树原创 2023-02-19 18:16:50 · 80 阅读 · 0 评论 -
Leetcode 448 找到所有数组中消失的数字
Leetcode 448 找到所有数组中消失的数字原创 2023-02-19 15:29:34 · 89 阅读 · 0 评论 -
*Leetcode 23. 合并K个升序链表
*Leetcode 23. 合并K个升序链表原创 2023-02-19 18:16:30 · 76 阅读 · 0 评论 -
*Leetcode 72 编辑距离
dp原创 2023-01-25 22:54:30 · 76 阅读 · 0 评论 -
Leetcode 198. 打家劫舍
dp原创 2023-01-24 08:11:01 · 80 阅读 · 0 评论 -
leetcode & 剑指 Offer 26. 树的子结构
leetcode & 剑指 Offer 26. 树的子结构原创 2023-01-23 17:11:56 · 98 阅读 · 0 评论 -
LeetCode OJ #2 Add Two Numbers
https://leetcode.com/problems/add-two-numbers/题意:两个链表表示两个数 ,2 4 35 6 4按照加法的规则从左往右加以及 进位。输出:和的链表。仍然是水题。一些特殊情况需要考虑(这些做题的时候我考虑到了)1、如果两个长度不等,如l1>l2 ,那么需要l1比l2多出来的部分加上进位copy到ans里2、5+5的原创 2015-05-02 21:08:52 · 800 阅读 · 0 评论 -
Leetcode OJ #3 Longest Substring Without Repeating Characters
https://leetcode.com/problems/longest-substring-without-repeating-characters/题目: 找一个字符串的连续子串,使得该子串里不含相同字母,求符合条件的最长的子串的长度。算法: DP----后缀思想最初考虑过用二分答案,发现复杂度应该是O(n*n*log(n)),其中n*n验证一个答案对不对,log(n)是原创 2015-05-09 19:59:23 · 832 阅读 · 0 评论 -
LeetCode OJ 1Two Sum
https://leetcode.com/problems/two-sum/水题一发吧,不过退役以来很少做题了,真是退步太厉害,没考虑全题意:给一个数组,也一个target,问哪两个数加起来可以得到target答案:桶排orHash1、注意,桶排序,而且桶的深度不一定是1,所以hash[i]表示i个数而不是是不是存在2、因为涉及下标,所以一定小心数组的数可以是分数,我的做法是,原创 2015-05-01 01:32:38 · 1430 阅读 · 0 评论 -
#LeetCode OJ #11 Container With Most Water
https://leetcode.com/problems/container-with-most-water/暴力O(n^2)肯定是面试会失败的分治可能O(n^log(n))但是有O(n)做法学到的思维方式:看解的性质,然后构造解,遍历所有可能的解,找出最优假设解的边界分别为left,right那么有如下性质:(1)left左边不应该有比left更大的高度left',原创 2015-05-31 01:52:46 · 1257 阅读 · 1 评论 -
刷算法题学到的一些思考问题的方式(动态更新)
1、看解的性质,然后构造解,遍历所有可能的解,找出最优http://blog.youkuaiyun.com/u011026968/article/details/46282001原创 2015-05-31 01:52:52 · 1659 阅读 · 0 评论 -
LeetCode 06 ZigZag Conversion
https://leetcode.com/problems/zigzag-conversion/水题纯考细心题目:按照Z字形来把一个字符串写成矩阵,然后逐行输出矩阵。O(n)可以处理掉记i为行数第0行和第numRow-1行, ans += str[i+k*(numRows*2-2)], k=0,1,2,...其他, 每个Z字形(其实只是一竖一斜两条线)需要加上两个,原创 2015-08-23 16:17:24 · 658 阅读 · 0 评论 -
*LeetCode 10 Regular Expression Matching 正则表达式
题目:https://leetcode.com/problems/regular-expression-matching/思路:(1)DFS(2)自动机DFS版本写的比较烂,然后很长逻辑混乱,基本就是出bug补上。。。592msconst int DEBUG = 0;class Solution {public: bool match(ch原创 2015-12-10 00:20:43 · 831 阅读 · 1 评论 -
*LeetCode 29. Divide Two Integers
https://leetcode.com/problems/divide-two-integers/非常想知道有什么不用long long就可以A掉的方法,似乎没有我写的: 模拟除法,学过汇编应该很容易理解需要特殊判断的是:如果被除数是-2147483648const int MAX_INT = 2147483647;const int MIN_INT = -21474836原创 2016-01-03 21:27:53 · 489 阅读 · 1 评论 -
*LeetCode 31. Next Permutation
https://leetcode.com/problems/next-permutation/参考了STL源码剖析的做法。由尾部往前,找到连续的两个数ii=i+1 nums[i]从尾部往前,找到第一个j 满足 nums[j] > nums[i]将ii -> j 逆序即可class Solution {public: void nextPe原创 2016-01-04 00:26:33 · 346 阅读 · 0 评论 -
LeetCode 49. Group Anagrams
https://leetcode.com/problems/anagrams/拿来练一练multimap思路很简单,每个word都sort 然后根据这个结果决定放哪个multimap的元素学到multimap的遍历方法啊,有点麻烦class Solution {public: vector > groupAnagrams(vector& strs)原创 2016-01-21 01:21:56 · 452 阅读 · 0 评论 -
LeetCode 39. Combination Sum
https://leetcode.com/problems/combination-sum/去重,自己写比用STL set处理快一些哎,当初上交的保研复试题就是这个,这个第二题,第三题是一个不会的dp......const int SIZE = 1000+5;class Solution {public: void removeReplication(vector &原创 2016-01-05 09:30:40 · 380 阅读 · 0 评论 -
*LeetCode 40. Combination Sum II
https://leetcode.com/problems/combination-sum-ii/跟39差不多 几分钟写写直接过const int SIZE = 1000+5;class Solution {public: vector > combinationSum2(vector& candidates, int target) { ans.clea原创 2016-01-05 09:33:32 · 471 阅读 · 1 评论 -
*LeetCode 3sum 3sum-closest 4sum k-sum类型 总结【待解决证明问题】
https://leetcode.com/problems/3sum/https://leetcode.com/problems/3sum-closest/https://leetcode.com/problems/4sum/首先说2sum, 这个以前以为只有hash可以做,但是这种做法的问题在于,对于数的范围小或者整数可以,如果是double,那么考虑double原创 2015-12-20 14:36:17 · 660 阅读 · 0 评论 -
Leetcode Letter Combinations of a Phone Number DFS
https://leetcode.com/problems/letter-combinations-of-a-phone-number/有一个trick 就是如果是输入"" 这个时候返回空其他就是代码写的简洁的问题了#include #include #include #include #include #include using namespace std;原创 2015-12-20 17:05:10 · 478 阅读 · 0 评论 -
Leetcode valid-parentheses
https://leetcode.com/problems/valid-parentheses/很简单的括号匹配判断,使用栈即可。学过数据结构或者编译原理会很容易搞#include #include #include #include #include using namespace std;class Solution {public: bo原创 2015-12-20 17:23:54 · 394 阅读 · 0 评论 -
21. Merge Two Sorted Lists
https://leetcode.com/problems/merge-two-sorted-lists/合并两个链表,写得丢人啊,还是得自己写一套熟练一下#include #include #include #include #include #include using namespace std;/** * Definition for singly-linke原创 2015-12-20 19:59:37 · 377 阅读 · 0 评论 -
LeetCode Generate Parentheses DFS或者生产呢排列
https://leetcode.com/problems/generate-parentheses/第一眼就感觉应该是生成排列,然后可以STL或者自己DFS, 时间复杂度O(n!) 简单起见 直接STL的next_permutation 注意这个函数的一个注意点,要想生成全部的排列,初始状态必须是字典序最小。方法一: 32msclass Solution {public:原创 2015-12-20 23:44:21 · 434 阅读 · 0 评论 -
*LeetCode Remove Nth Node From End of List 双指针
https://leetcode.com/problems/remove-nth-node-from-end-of-list/以后遇到指针的题一定要自己手画一画,即使再简单,然后一定保证用眼睛debug之后1A!!! 否则太丢人。。第一种,就是正常做法,首先测长度,然后找倒数n个点,然后删除第二种,就是两个指针的做法,按说会比第一种快,首先first指针走n步,然后fi原创 2015-12-21 00:42:01 · 373 阅读 · 0 评论 -
LeetCode 50. Pow(x, n)
https://leetcode.com/problems/powx-n/两个坑:(1)次方可以是赋值,解决方法是1/x(2)注意啊,如果n为负数的时候 右移运算,为了保持符号,符号位自动填充1,会TLE 另外还有坑 负的最大值比正的最大值大,所以一定转换long long啊class Solution {public: double原创 2016-01-21 22:36:14 · 385 阅读 · 0 评论 -
LeetCode 53. Maximum Subarray
https://leetcode.com/problems/maximum-subarray/dp题 很老了dp[i]是以i为结尾的和,那么当遍历到第i个数的时候,有两种选择,从i开始中心来,或者接着之前的dp[i-1]+nums[i]记录整个过程的最大值即可,O(n)话说 @博乐之后,,,我博客浏览量下降很惨啊 T_Tclass Solution原创 2016-01-21 23:51:46 · 517 阅读 · 2 评论 -
LeetCode 51. N-Queens
https://leetcode.com/problems/n-queens/比较容易的hardDFS判断条件有点失误 哎DFS 写的有点慢啊class Solution {public: vector > solveNQueens(int n) { vector > ret; if(n == 0) return ret;原创 2016-01-22 01:24:11 · 442 阅读 · 0 评论 -
**LeetCode 54. Spiral Matrix
https://leetcode.com/problems/spiral-matrix/水题做成这个样子真是说不过去,,四个变量控制,两个控制左右范围,另个控制上下范围两种特殊情况,只有一行和一列,因为push_back的时候其实只是考虑了行或者列的情况没有综合考虑 所以容易重复#include #include #include #include #inc原创 2016-01-22 02:04:42 · 386 阅读 · 0 评论 -
LeetCode 59. Spiral Matrix II
https://leetcode.com/problems/spiral-matrix-ii/#include #include #include #include #include #include #include using namespace std;class Solution {public: vector > generateMatrix(int原创 2016-01-22 02:38:56 · 355 阅读 · 0 评论 -
LeetCode 52. N-Queens II
https://leetcode.com/problems/n-queens-ii/跟上一题完全一样啊class Solution {public: int totalNQueens(int n) { int ret = 0; for(int i=0;i<n;i++) vis[i] = 0;原创 2016-01-22 22:26:52 · 340 阅读 · 0 评论 -
**LeetCode 56. Merge Intervals
https://leetcode.com/problems/merge-intervals/虽然是Hard 但是并不难,但是WA了问题在于 自己没有好好动手模拟,选择的分隔的标准有问题方法一:线段树涂色问题方法二:先把区间按照左端点排序 左端点一样就按照右端点排序,然后st en分别标记当前的区间,如果发现interval[i+1]>st 就存入ret,更新St和en原创 2016-01-23 01:26:39 · 421 阅读 · 0 评论 -
**LeetCode 60. Permutation Sequence
https://leetcode.com/problems/permutation-sequence/康拓展开和逆康拓展开自己推一推 参考http://www.cnblogs.com/hxsyl/archive/2012/04/11/2443009.htmlclass Solution {public: string getPermutation(int n, in原创 2016-01-23 02:04:36 · 314 阅读 · 0 评论 -
LeetCode 61. Rotate List
https://leetcode.com/problems/rotate-list/一直想给LeetCode 的题目描述跪, 一直说不清楚。此题一个坑是:k >= length(链表),只要k%=n就行,当然这个时候还有坑 n==0#include #include #include #include #include #include #include using n原创 2016-01-25 00:39:39 · 323 阅读 · 0 评论 -
*LeetCode 41. First Missing Positive 思维题
https://leetcode.com/problems/first-missing-positive/如果是只缺一个数的话,好说,就是求和, 然后n*(n+1)/2 -sum 就是缺的数字但是,,,这道题,这样的数据也是要求有正确结果的:31 4 5这类题最终要的是:找到一些性质这个题需要理解的性质是,假设缺的数是ans,那么他应该出现在下标为ans-原创 2016-01-07 15:32:27 · 431 阅读 · 0 评论 -
*LeetCode 62. Unique Paths 记忆化搜索 or 组合数学
https://leetcode.com/problems/unique-paths/记忆化搜索的本质就是dp, 但是涉及图的时候 有时候思考会更顺一些const int SIZE = 101;class Solution {public: int uniquePaths(int m, int n) { for(int i=0;i<m;i+原创 2016-01-25 20:56:24 · 524 阅读 · 0 评论 -
LeetCode 63. Unique Paths II
https://leetcode.com/problems/unique-paths-ii/比http://blog.youkuaiyun.com/u011026968/article/details/50582964 多一步 就是有障碍的地方有0种方法const int SIZE = 101;class Solution {public: int uniquePat原创 2016-01-25 21:02:24 · 377 阅读 · 0 评论 -
LeetCode 69. Sqrt(x)
https://leetcode.com/problems/sqrtx/二分法class Solution {public: int mySqrt(int x) { if(x <= 1) return x; int l = 0 ,r = x, mid= (l+r)/2;; while(l <= r) { /原创 2016-01-25 22:57:50 · 321 阅读 · 0 评论