Skip to content

mabodx/leetcode

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

solution for leetcode.com

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published