Leetcode
文章平均质量分 75
chiiis
这个作者很懒,什么都没留下…
展开
-
Leetcode 问题分类
http://leetcode.cloudfoundry.com/IdQuestionDifficultyFreqencyData StructuresAlgorithms1Two Sum25arraysetsorttwo pointers2Add原创 2013-02-25 03:41:29 · 9540 阅读 · 0 评论 -
Leetcode 题目分类
Dynamic ProgrammingEdit DistanceMaximum SubarrayMinimum Path SumUnique PathsUnique Paths IILongest Palindromic SubstringInterleaving StringTriangleDistinct SubsequencesDecode WaysPalindrome Partition原创 2013-10-14 10:42:05 · 5198 阅读 · 0 评论 -
求全是1的最大矩阵面积 Maximal Rectangle @LeetCode
一开始参考http://www.geeksforgeeks.org/maximum-size-sub-matrix-with-all-1s-in-a-binary-matrix/,但发现它的条件是square submatrix,所以本题不符合。后来参考http://yucoding.blogspot.com/2013/01/incomplete-leetcode-question-47-ma原创 2013-12-31 11:38:32 · 5053 阅读 · 1 评论 -
最长连续有效括号 Longest Valid Parentheses @LeetCode
思路:用栈保存左括号(遇到(就直接压入栈中。遇到):要用一个变量保存第一个(的下标位置firstLeftPos如果当前栈为空,则更新firstLeftPos,然后忽略这个)。如果栈非空,则弹栈,取出匹配的(。如果弹栈后的栈非空则根据当前)的下标和栈顶元素计算长度;如果弹栈后的栈为空,则更具当前)的下标和firstLeftPos计算长度。package L原创 2014-01-01 04:04:59 · 4532 阅读 · 1 评论 -
两个字符串交叉得到的字符串 Interleaving String @LeetCode
同 《DP33 两个字符串交叉得到的字符串 Find if a string is interleaved of two other strings @geeksforgeeks》package Level5;/**Interleaving String Given s1, s2, s3, find whether s3 is formed by the interleavi原创 2014-01-01 04:29:12 · 2389 阅读 · 0 评论 -
判断正则表达式是否匹配 Regular Expression Matching @LeetCode
这道题真心容易错,总的来说思路是递归。判断下一个字符是否是*:如果不是*,则判断当前字符是否匹配。如果是*,则因为不能确定*到底会匹配几个,在当前字符匹配的前提下,要枚举所有的情况,从假设匹配0个,1个,2个。。。只要有一种情况成功了,最终也就成功了。如果是*,但是当前字符不匹配,则跳过两个递归。http://discuss.leetcode.com/questio原创 2013-12-31 17:13:18 · 7177 阅读 · 0 评论 -
分割成回文需要的最小分割数 Palindrome Partitioning II @LeetCode
两个DP,用DFS肯定通不过。参考:http://yucoding.blogspot.com/2013/08/leetcode-question-133-palindrome.htmlAnalysis:This is a DP problem! Also it is a double DP problem!Why? Because, if we use the same a原创 2014-01-01 07:42:52 · 2829 阅读 · 0 评论 -
LeetCode Status
LeetCode OJProblemsPick One!SubmissionsDiscussDonateWelcome, ! You have solved 143 / 150 problems. TitleAdd DateAC Rates原创 2014-01-05 02:38:32 · 2087 阅读 · 0 评论 -
Valid Number 判断一个string是不是有效地数字表达式 @LeetCode
这道题看了看网上的解法,很多都做得很麻烦。其实我觉得,这道题就是考察正则表达式。package Level2;/** * Valid Number * * Validate if a given string is numeric.Some examples:"0" => true" 0.1 " => true"abc" => false"1 a" =>原创 2013-10-21 02:55:33 · 15657 阅读 · 5 评论 -
Word Search 在一个二维字符矩阵里找单词 @LeetCode
这道题卡时间卡的很紧,多了一条没用的语句就会TLE。开始时候在exit()里遍历每个节点时,为了直接在board里面记录访问过的元素,我居然每次都新建board二维数组,还要拷贝原来内容到新数组中,铁定TLE。后来在dfs里面新加了一个参数boolean[][] visited用来记录是否访问过了。这样每次虽然要新建visited数组,但不用拷贝了,但还是TLE。后来运用我总结的DFS模板原创 2013-11-06 14:16:44 · 7242 阅读 · 3 评论 -
Binary Tree Maximum Path Sum 二叉树最大路径和 @LeetCode
很有难度的一道题,主要是最大和的可能性很多,不知道如何分情况。关键点1:分析:http://fisherlei.blogspot.com/2013/01/leetcode-binary-tree-maximum-path-sum.htmlFor each node like following, there should be four ways existing for max pa原创 2013-11-23 01:05:35 · 14651 阅读 · 0 评论 -
Divide Two Integers 两数相除@LeetCode
思路清晰,就是二倍法。直接用除数去一个一个加,直到被除数被超过的话,会超时。解决办法每次将被除数增加1倍,同时将count也增加一倍,如果超过了被除数,那么用被除数减去当前和再继续本操作。因为一个很大的数经过对数处理后都能在可接受的大小内。比如Integer.MAX_VALUE 的log后也不过31.另外这道题很恶心的一点是在边界的处理,因为我们知道最大允许的负数的绝对值比最大允许的正原创 2013-11-23 14:27:23 · 4023 阅读 · 1 评论 -
Reverse Nodes in k-Group k-group翻转链表@LeetCode
这种题目是要背下来的。。翻转单链表:ListNode dummy = new ListNode(0); dummy.next = head; ListNode pre = dummy; ListNode cur = head.next; ListNode last = head; while(cur != null){ las原创 2013-11-24 12:43:13 · 2257 阅读 · 0 评论 -
Permutation Sequence 求第k个的排列序列 @LeetCode
思路:1 求出所有的排序,直到k为止。至少Java会超时。2 数学,找规律,不好想! 参考 http://fisherlei.blogspot.com/2013/04/leetcode-permutation-sequence-solution.html假设有n个元素,第K个permutation是a1, a2, a3, ..... ..., an那么a1是哪一个数字呢?原创 2013-12-22 12:31:15 · 7993 阅读 · 2 评论 -
Candy 根据排名分糖果 @LeetCode
一些例子:1 2 3 3 3 =》 8 因为candy数可以是1 2 3 1 11 2 3 2 3 =》9 因为candy数可以是1 2 3 1 2思路:1 d[i] 是给第i个小孩最少几块糖rank[i] > rank[i - 1],必须比前一个多给一块,d[i] = d[i - 1] + 1rank[i] == rank[i原创 2013-12-23 04:56:31 · 5536 阅读 · 0 评论 -
Unique Binary Search Trees 求BST的组合总数 @LeetCode
没思路,看了http://fisherlei.blogspot.com/2013/03/leetcode-unique-binary-search-trees.html 才恍然大悟。要多多练习找递推公式啊package Level3;/** * Unique Binary Search Trees * * Given n, how many structurally原创 2013-11-08 03:36:19 · 3781 阅读 · 1 评论 -
Permutations 排序(有重复数)II @LeetCode
比起http://blog.csdn.net/fightforyourdream/article/details/14217105多加了一个while来去重,发现这个去重方法在另一道题也用过,同样也是DFS里面去重,很好用!另外就是在最前面加了一个sort,因为如果没加,当输入乱序时就会Output Limit Exceed!package Level4;import ja原创 2013-12-20 14:41:26 · 2821 阅读 · 0 评论 -
LeetCode 判断一个数是否为平衡二叉树 Balanced Binary Tree
简单题,以前居然没有贴上来package Level1;import Utility.TreeNode;/** * Balanced Binary Tree Given a binary tree, determine if it is height-balanced. * * For this problem, a height-balanced binary tree原创 2014-01-23 05:48:01 · 14582 阅读 · 12 评论 -
Single Number II 除了一个元素外其他元素都出现3次 @LeetCode
第一种方法好想,第二种要用到bit vectorpackage Level3;import java.util.Hashtable;import java.util.Set;/** * Single Number II * * Given an array of integers, every element appears three times exc原创 2013-11-09 00:40:04 · 7005 阅读 · 3 评论 -
Permutations 排序 @LeetCode
package Level3;import java.util.ArrayList;/** * Permutations * * Given a collection of numbers, return all possible permutations.For example,[1,2,3] have the following permutations:[1,2,3原创 2013-11-06 01:21:15 · 2957 阅读 · 0 评论 -
Generate Parentheses 产生所有括号组合 @LeetCode
典型的递归题,画出图来就很好理解。1,2分别对应着两种特殊情况。package Level3;import java.util.ArrayList;/** * Generate Parentheses * * Given n pairs of parentheses, write a function to generate all combination原创 2013-11-05 06:05:06 · 11720 阅读 · 3 评论 -
Sort Colors 排序颜色 @LeetCode
第一种方法易想到,第二种类似quicksort的排序,用front和back指针来做。package Level4;import java.util.Arrays;/** * Sort Colors * * Given an array with n objects colored red, white or blue, sort them so that * o原创 2013-11-10 07:46:06 · 1906 阅读 · 0 评论 -
Combination Sum 无序数组中找组合(每个元素可用多次)使得和为target@LeetCode
典型DFSpackage Level3;import java.util.ArrayList;import java.util.Arrays;/** * * Combination Sum * * Given a set of candidate numbers (C) and a target number (T), find all unique * co原创 2013-11-21 12:23:56 · 1950 阅读 · 0 评论 -
Reverse Integer 翻转数字@LeetCode
package Level2;/** * * Reverse Integer * * Reverse digits of an integer.Example1: x = 123, return 321Example2: x = -123, return -321click to show spoilers.Have you thought about this?原创 2013-10-25 03:53:09 · 2483 阅读 · 3 评论 -
Single Number 数组找只出现一次的数@LeetCode
package Level1;/** * Single Number * * Given an array of integers, every element appears twice except for one. Find that single one.Note:Your algorithm should have a linear runtime complexit原创 2013-11-08 02:56:57 · 2635 阅读 · 0 评论 -
Combination Sum II 无序数组中找组合(每个元素只能用一次)使得和为target@LeetCode@LeetCode
和上一题思想一样,区别在于每个元素只能用一次,所以start的位置也要改变。另外一个问题是如何处理返回大集合中有重复子集合的问题。最容易想到的就是用HashSet来过滤一遍,参考了http://blog.csdn.net/u011095253/article/details/9158423的大作后发现有一种更绿色的方法,就是多用一个while循环跳过相同的元素!这个技巧在很多情况下都很好用原创 2013-11-21 12:40:25 · 2432 阅读 · 0 评论 -
Same Tree 比较是否是相同的树@ LeetCode
/** * Same Tree * * Given two binary trees, write a function to check if they are equal or not. * * Two binary trees are considered equal if they are structurally identical and * the nodes hav原创 2013-10-18 10:53:18 · 2041 阅读 · 3 评论 -
Maximum Depth of Binary Tree 求二叉树的高度/深度 @LeetCode
/** * Maximum Depth of Binary Tree * * Given a binary tree, find its maximum depth. * * The maximum depth is the number of nodes along the longest path from the root * node down to the farthes原创 2013-10-18 11:53:04 · 1718 阅读 · 0 评论 -
Linked List Cycle 有环的链表@LeetCode
package Level2;import Utility.ListNode;/** * Linked List Cycle * * Given a linked list, determine if it has a cycle in it.Follow up:Can you solve it without using extra space? * */public原创 2013-11-08 03:03:42 · 2020 阅读 · 3 评论 -
Populating Next Right Pointers in Each Node 完美二叉树添加next指针 @LeetCode
package Level3;import Utility.TreeLinkNode;/** * Populating Next Right Pointers in Each Node * * Given a binary tree struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *r原创 2013-11-08 02:49:04 · 9947 阅读 · 1 评论 -
Search Insert Position 找适合插入的位置@LeetCode
package Level2;/** * * Search Insert Position * * Given a sorted array and a target value, return the index if the target is found. If not, return the index where it would be if it were ins原创 2013-11-06 00:19:22 · 6406 阅读 · 1 评论 -
Binary Tree Postorder Traversal 二叉树后续遍历@LeetCode
迭代解法在那篇面试总结二中写了package Level3;import java.util.ArrayList;import Utility.TreeNode;/** * Binary Tree Postorder Traversal * * Given a binary tree, return the postorder traversal of its n原创 2013-11-21 10:49:40 · 1790 阅读 · 0 评论 -
Linked List Cycle II 找链表环入口 @LeetCode
经典链表环的问题package Level3;import Utility.ListNode;/** * Linked List Cycle II * * Given a linked list, return the node where the cycle begins. If there is no cycle, return null.Follow原创 2013-11-09 01:03:19 · 4543 阅读 · 0 评论 -
Remove Duplicates from Sorted List 从链表里移除重复元素 @LeetCode
/** * Remove Duplicates from Sorted List * * Given a sorted linked list, delete all duplicates such that each element * appear only once. * * For example, Given 1->1->2, return 1->2. Given 1-原创 2013-10-15 01:55:36 · 2283 阅读 · 0 评论 -
Binary Tree Preorder Traversal 二叉树的先序@LeetCode
用递归和迭代求Pre-Order的经典题,什么时候要把In-Order, Post-Order, Level-Order 的遍历都写一遍,因为太经典了,最好能直接背下来。package Level3;import java.util.ArrayList;import java.util.Stack;/** * Binary Tree Preorder Traversa原创 2013-11-08 04:23:35 · 3643 阅读 · 0 评论 -
Binary Tree Level Order Traversal 分层遍历二叉树@LeetCode
package Level3;/** * Binary Tree Level Order Traversal * * Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).For example:G原创 2013-11-08 13:20:32 · 5046 阅读 · 0 评论 -
Binary Tree Level Order Traversal II 二叉树按层遍历(反向输出)@LeetCode
树的Level Order Traversal加上ArrayList翻转package Level3;import java.util.ArrayList;import java.util.LinkedList;import java.util.Queue;import Utility.TreeNode;/** * Binary Tree Level Order T原创 2013-11-21 03:01:06 · 5090 阅读 · 0 评论 -
Merge Two Sorted Lists 合并两个有序链表@LeetCode
之前做过这道题,没有用递归,做的非常痛苦。我就在想这是Level2的题怎么会怎么麻烦。。果然用了递归变得非常简洁!以后优先选择递归的解法(特别是链表和树的题目),如果不行再用迭代!package Level2;import Utility.ListNode;/** * Merge Two Sorted Lists * * Merge two sorted linke原创 2013-11-25 05:12:26 · 2741 阅读 · 0 评论 -
Rotate Image 旋转矩阵 @LeetCode
貌似是careercup原题package Level4;/** * Rotate Image * * You are given an n x n 2D matrix representing an image.Rotate the image by 90 degrees (clockwise).Follow up:Could you do this in原创 2013-11-09 01:40:05 · 4746 阅读 · 0 评论 -
Search a 2D Matrix 在有序二维矩阵查找数 @LeetCode
经典面试题,从右上角开始查找O(m+n),可以不用二分法package Level3;/** * Search a 2D Matrix * *Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the following properties:原创 2013-11-06 06:12:02 · 2118 阅读 · 0 评论