| 3Sum Closest | O(n^2) 求三个数字之和最接近target的数字,排序后循环一层,接下去两端向中间靠拢 | 80ms |
| 3Sum | O(n^2) 求3个数字之和为0的组合,同上,注意去重 | 250ms |
| 4Sum | O(n^3) 求4个数字之和为0的组合,同3Sum,第三层循环两端向中间靠拢 | 250ms |
| O(n^2log(n))+大常数 将原数组两两相加组成一个二元组(num[i]+num[j],i,j),接着对原数组两层for循环并对二元组二分取值,用下标保证不重复 | 1100ms | |
| Add Binary | 模拟二进制加法,一个for循环 | 20ms |
| Add Two Numbers | 链表加法,同上,一个for循环 | 200ms |
| Anagrams | 选取strs中由相同字符构成的串,用map<\string,vector<\string> >解决,排序后的str做key,然后把原值塞进vector中 | 250ms |
| Balanced Binary Tree | 检查是否是二叉平衡树,任意节点的左右子树高度差不超过1,递归解决 | 68ms |
| Best Time to Buy and Sell Stock III | O(n) 知道股票每日价格,只能交易两笔,卖了之后才能买,两边DP | 60ms |
| Best Time to Buy and Sell Stock II | O(n) 知道股票每日价格,可以交易任意笔,差值求和 | 48ms |
| Best Time to Buy and Sell Stock | O(n) 知道股票每日价格,只能交易一笔,记录最小值 | 56ms |
| Binary Tree Inorder Traversal | in-order遍历二叉树 | 12ms |
| Binary Tree Level Order Traversal II | 简单遍历二叉树,从叶子到根的顺序装进vector | 132ms |
| Binary Tree Level Order Traversal | 简单遍历二叉树,从根到叶子的顺序装进vector | 24ms |
| Binary Tree Maximum Patd Sum | 简单树形DP,权值之和最大的一段路径 特别要注意负数 | 152ms |
| Binary Tree Zigzag Level Order Traversal | 简单遍历二叉树,从根到叶子,奇数层从左到右,偶数层从右到左 | 28ms |
| Climbing Stairs | Fibonacci | 12ms |
| Combination Sum II | 简单递归,从数组C中找一些数字组使这些数字和为T,一个数字用一次,且答案不能重复 | 60ms |
| Combination Sum | 简单递归,从数组C中找一些数字组使这些数字和为T,一个数字用任意次 | 60ms |
| Combinations | 简单递归,列出所有k个数字(1-n)的组合 | 56ms |
| Construct Binary Tree from Inorder and Postorder Traversal | 知道中序和后序,构建树,要注意内存 | 168ms |
| Construct Binary Tree from Preorder and Inorder Traversal | 知道中序和前序,构建树,要注意内存 | 176ms |
| Container With Most Water | 一排直线,找两条线使得能装下的水最多 | 100ms |
| Convert Sorted Array to Binary Search Tree | 以排好序的数组生成BST,找到中间节点,用preorder生成 | 92ms |
| Convert Sorted List to Binary Search Tree | 已排好序的链表生成BST,先得到长度,然后用inorder来生成 | 164ms |
| Count and Say | 简单模拟 1->11->21->1211->... | 20ms |
| Decode Ways | 简单DP O(n) 把字符串分段使得每一段都是1-26的方法数 | 16ms |
| Distinct Subsequences | 简单DP O(n*m) 有多少个S的子串包含T 注意边界 | 72ms |
| Divide Two Integers | 模拟除法,用位运算,注意边界,int转正数会溢出,转成负数做 | 64ms |
| Edit Distance | O(n*m) 最短编辑距离 注意边界 | 140ms |
| First Missing Positive | 找到最小不存在的正整数,O(1)空间 | 20ms |
| Flatten Binary Tree to Linked List | 将二叉树重构,只有右儿子 | 52ms |
| Generate Parentheses | 简单递归 生成匹配的括号 | 12ms |
| Gray Code | 格雷码 公式i^(i>>1) | 36ms |
| Implement strStr() | KMP | 28ms |
| Insert Interval | 一个区间和一组有序区间合并 | 72ms |
| Integer to Roman | 数字翻译成罗马数字 | 128ms |
| Interleaving String | 看s1和s2能不能合并成s3 | 16ms |
| Jump Game II | 每个位子可以跳到val远处,问起点到终点的最小步数 | 52ms |
| Jump Game | 每个位子可以跳到val远处,问起点能不能跳到终点 | 52ms |
| Largest Rectangle in Histogram | 经典问题,最大矩形 left+right | 100ms |
| 用一个递增栈来做 | 100ms | |
| Length of Last Word | 最后一个词的长度 优美解法 | 32ms |
| Letter Combinations of a Phone Number | 递归 手机号码和字符的组合数 | 12ms |
| Longest Common Prefix | 一组字符串的最长相同前缀 | 24ms |
| Longest Consecutive Sequence | 乱序数组中最长的连续数字 用unordered_set O(n) | 64ms |
| Longest Palindromic Substring | 最长回文 O(n) | 40ms |
| Longest Substring Without Repeating Characters | 字符串中最长不重复的字符 纯O(n) 两种做法,比较优美 | 50ms |
| Longest Valid Parentheses | 最长合法圆括号数 | 40ms |
| Maximal Rectangle | 二维的Largest Rectangle in Histogram | 72ms |
| Maximum Depth of Binary Tree | 树的最长深度 | 44ms |
| Maximum Subarray | 最大子序列 | 44ms |
| Median of Two Sorted Arrays | 两个排序数组的中位数 | 192ms |
| Merge Intervals | 合并区间 O(nlogn) | 88ms |
| Merge k Sorted Lists | 合并k个有序链表 O(nlogm) 注意写比较器 | 84ms |
| Merge Sorted Array | 将有序数组A,B合并到A中,O(1)内存,倒序 | 32ms |
| Merge Two Sorted Lists | 合并两个有序链表,新链表要用原链表拼接 | 60ms |
| Minimum Depth of Binary Tree | 根节点到最近的叶子节点的距离 | 52ms |
| Minimum Path Sum | 从左上角向下向右走到右下角的最短距离 简单二维DP | 76ms |
| Minimum Window Substring | 从S中找到包含T所有字符的最小子串 , O(n) | 60ms |
| Multiply Strings | 大数乘法 | 36ms |
| N-Queens II | 输出方案数 位运算 | 60ms |
| N_Queens | 输出方案 同上 | 16ms |
| Next Permutation | 下一个组合数,要求O(n) | 68ms |
| Palindrome Number | 判断数字回文 O(1)空间 | 288ms |
| Palindrome Partitioning II | 最小几刀将一个串切成全部都是回文串 | 188ms |
| Palindrome Partitioning | 将一个串切分成全部都是回文串 | 52ms |
| Partition List | 将链表中小于x的归到左边,并保持原顺序不变 | 48ms |
| Pascal's Triangle II | 杨辉三角 O(n)空间输出第n行 | 8ms |
| Pascal's Triangle | 杨辉三角 | 16ms |
| Path Sum II | 输出从根节点到叶子距离为sum的path | 72ms |
| Path Sum | 跟加点到叶子的距离是否有和为sum | 64ms |
| Permutation Sequence | 第K个组合数 | 12ms |
| Permutations II | 有相同数字的组合数 | 164ms |
| Permutations | 不同数字的组合数 | 84ms |
| Plus One | 大数+1 | 20ms |
| Populating Next Right Pointers in Each Node II | 任意二叉树的邻指针 用O(1)的空间bfs | 160ms |
| Populating Next Right Pointers in Each Node | 完全二叉树的邻指针 | 128ms |
| Pow(x, n) | 模拟pow(double,int) 注意n的int范围,正负 | 20ms |
| Recover Binary Search Tree | 树中两个元素错位,要求修复并用O(1)的空间,前序遍历记录上一个节点 | 308ms |
| Regular Expression Matching | 正则表达式.*匹配 | 48ms |
| Remove Duplicates from Sorted Array II | 使有序数组中只保留最多两份相同数字 | 92ms |
| Remove Duplicates from Sorted Array | 把有序数组中相同的数字去掉 | 68ms |
| Remove Duplicates from Sorted List II | 有序链表中将有重复的数字全部去掉 | 68ms |
| Remove Duplicates from Sorted List | 有序链表去重 | 80ms |
| Remove Element | 给一个元素和一个数组,把这个数组中等于这个元素的去掉 | 20ms |
| Remove Nth Node From End of List | 把指针的倒数第N个节点去掉 | 20ms |
| Restore IP Addresses | 一串数字,转成IP地址 | 24ms |
| Reverse Integer | 翻转int | 32ms |
| Reverse Linked List II | 链表n到m个数字翻转 | 20ms |
| Reverse Nodes in k-Group | 将链表以k个一组翻转 | 144ms |
| Roman to Integer | 罗马数字转阿拉伯数字 | 172ms |
| Rotate Image | 顺时针翻转n*n矩阵,in-place | 32ms |
| Rotate List | 将链表右移k位 | 72ms |
| Same Tree | 判断两个二叉树是否相等 | 12ms |
| Scramble String | 判断一个字符串能否以二叉树选择成另外一个,O(n^3)空间,O(n^4)时间 | 76ms |
| Search a 2D Matrix | 在n*m的有序矩阵中找一个数 | 72ms |
| Search for a Range | lower_bound和upper_bound | 68ms |
| Search in Rotated Sorted Array II | 同上题,不过有有重复数字,极限情况会退化成O(n) | 56ms |
| Search in Rotated Sorted Array | 在旋转过的且唯一的有序数组中二分查找 | 24ms |
| Search Insert Position | lower_bound | 40ms |
| Set Matrix Zeroes | 如果有某个数字是0,那么把这行这列都设置为0,in-place,用第一行第一列记录,注意顺序 | 372ms |
| Simplify Path | 将unix的文件路径化简,用stringstream和栈来做 | 48ms |
| Sort Colors | 0,1,2数组的排序,一个循环 | 28ms |
| Spiral Matrix II | 回字形填充矩阵 | 24ms |
| Spiral Matrix | 回字形遍历矩阵 | 16ms |
| Sqrt(x) | 模拟整数开平方 , 二分 , 用除法 | 48ms |
| String to Integer (atoi) | 模拟atoi , 只返回第一部分的值 , 注意int范围 | 52ms |
| Subsets II | 有重复数字的所有子串 | 60ms |
| Subsets | 组数的子串 | 40ms |
| Substring with Concatenation of All Words | 在S中找到恰好包含vector L的所有子串 O(S.length() * L[0].length()) | 244 |
| Sudoku Solver | 解数独,唯一解,dfs | 24ms |
| Sum Root to Leaf Numbers | 二叉树根到叶子的组成的数字的和 | 24ms |
| Surrounded Regions | 将被X包围的O变成X | 48ms |
| Swap Nodes in Pairs | 交换链表奇偶的节点 | 20ms |
| Symmetric Tree | 判断树是否对称 | 24ms |
| Text Justification | 文字排版 | 12ms |
| Trapping Rain Water | 一个数组代表木条的高度,问这组容器能积多少水 , 一次循环,两边向中间 | 56ms |
| Triangle | 数塔 | 44ms |
| Two Sum | 找两个数字和等于target | 28ms |
| Unique Binary Search Trees II | 输出BST的所有方案 | 120ms |
| Unique Binary Search Trees | 输出BST的所有方案数 | 68ms |
| Unique Paths II | 从左上角走到右下角的方案数,有障碍物 | 24ms |
| Unique Paths | 从左上角走到右下角的方案数 | 12ms |
| Valid Number | 判断字符串是否是个合法数字, " -1.2e+3 " 9个状态的自动机 | 24ms |
| Valid Palindrome | 判断一个字符串是否是回文,只考虑大小写数字,大小写不care | 52ms |
| Valid Parentheses | 判断(){}[]是否合法,stack O(n) | 48ms |
| Valid Sudoku | 判断数独已经填了的数字是否冲突 | 48ms |
| Validate Binary Search Tree | 判断一个树是否是BST | 64ms |
| Wildcard Matching | 模拟通配符匹配 O(1)空间 | 88ms |
| Word Ladder II | 从一个词到另一个词的方案,要求相邻的单词相差1且出现才多给的词典中 | 1036ms |
| Word Ladder | 从一个词到另一个词的距离,要求相邻的单词相差1且出现才多给的词典中 | 1004ms |
| Word Search | 在二维矩阵中找一个串,字母不能重复用,暴力dfs | 88ms |
| ZigZag Conversion | Z字型遍历字符串 | 92ms |
forked from wolf5x/leetcode
-
Notifications
You must be signed in to change notification settings - Fork 0
treeguard/leetcode-1
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
About
solution for leetcode.com
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published