- 博客(28)
- 收藏
- 关注
原创 Insert Interval
各种条件真复杂,不仅是边界条件,而且还要分很多种情况讨论 而且 检查数组越界真心是个伤不起的活。。。[code="java"]/** * Definition for an interval. * public class Interval { * int start; * int end; * Interval() { start = 0; e...
2012-11-11 01:33:33 98
原创 算法与数据结构
感觉算法比数据结构要难啊,KMP折腾了我好久。。。而递归和动规神马的,只要想到了就比较简单(当然要注意边界条件之类),而算法复杂起来要想很久很细,唉。。。...
2012-11-09 12:56:06 96
原创 Implement strStr()
唉 终于到了要记算法的时候了 KMP。。。还没写完 回去再写。。。。。。首先可以看这篇文章http://www.programfan.com/blog/article.asp?id=15762然后之前代码完全写错了,我觉得KMP的理解和记忆的核心在于两点:1、KMP中next数组的目的在于知道某个字母失配之后应该怎么根据模式串已匹配的字符找最近的最大匹配 2、next数组的生成过程...
2012-11-07 15:44:33 82
原创 Flatten Binary Tree to Linked List && Generate Parentheses && Gray Code
Flatten太简单了 递归 一遍过 oh yeah = = 也没什么好骄傲的[code="java"]/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(...
2012-11-07 00:08:57 73
原创 First Missing Positive
唉 想了很久都没想出来 后来还是看了网上的答案 >_<public class Solution { public int firstMissingPositive(int[] A) { // Start typing your Java solution below // DO NOT write main() function ...
2012-11-06 22:50:09 90
原创 Edit Distance
动规 就是递推。。。比较难想 然后数组长度设置比字符串长度多一,并做一定的初始化,都是为了方便边界条件的设置。。。。[code="java"]public class Solution { public int minDistance(String word1, String word2) { // Start typing your Java solution...
2012-11-06 00:27:39 103
原创 Divide Two Integers
自己实现除法 太太太恶心了。。。。就是用位移代替了乘法,然后不断减去位移得到的乘数*除数主要是测试数据还有一个Java.MinValue的问题 = = 取了abs之后它居然还是负数。。。我日[code="java"]public class Solution { public int divide(int dividend, int divisor) { ...
2012-11-05 00:12:51 77
原创 Distinct Subsequences
动规,从前到后用T的每一个字符i,扫描S的每一个字符j。维护一个数组的更新,表示到j位置的子串有多少子序列和到i之前字串匹配的。然后在递推的时候,只需要看i是否和j匹配,然后匹配就说明有新的j可以和之前的子串组成符合条件的串。开始边界条件[code="java"]public class Solution { public int numDistinct(String S, ...
2012-11-04 21:44:59 74
原创 Decode Ways
[code="java"]public class Solution { public int numDecodings(String s) { // Start typing your Java solution below // DO NOT write main() function if (s.length() == 0)...
2012-11-04 20:35:22 77
原创 Count and Say
[code="java"]public class Solution { public String countAndSay(int n) { // Start typing your Java solution below // DO NOT write main() function ArrayList current = n...
2012-11-04 18:46:59 75
原创 Convert Sorted Array to Binary Search Tree && Convert Sorted List to Binary Sear
[code="java"]/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public cl...
2012-11-04 17:36:08 77
原创 Container With Most Water
本来以为是个简单的题目,直接二重循环,结果小测试过了,大测试超时了= = 1万个数据啊,必须优化了[code="java"]public class Solution { public int maxArea(int[] height) { // Start typing your Java solution below // DO NOT w...
2012-11-04 00:25:37 78
原创 Construct Binary Tree from Inorder and Postorder Traversal
不知道为什么错了。。。eclipse上明明是正确的啊 leetcode上就显示runtime error[code="java"]/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * ...
2012-11-03 23:40:02 106
原创 Combination Sum I && II
还是递归 但是边界条件以及边界上的处理不容易搞清楚(一开始我就把target==0的情况漏掉了,然后又把target==0放在了target
2012-11-03 21:41:08 80
原创 climbing stairs
一开始觉得是简单的组合数学题,但是写完之后发现,首先组合数不是那么简单就能算好的,然后就是。。。。int对于up和down(分子和分母)太小了 囧啊 换成long好一点,还有错,然后再换成double,差不多了,但是有3个结果正好只差2,囧啊,改成float也不行,sigh[code="java"]public class Solution { public int climbS...
2012-11-03 17:18:22 116
原创 Binary Tree Inorder Traversal
I简单 直接递归就好 addAll函数很好用[code="java"]/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x;...
2012-11-02 23:51:06 73
原创 Best Time to Buy and Sell Stock I & II
啊 第一次直接过small和big测试 好爽!虽然主要是以前知道这个题目吧= =以前一直想不清这个题目的算法,今天终于搞明白了。思路很简单:就是用i遍历第2到最后一天,看第i天卖最大的profit是多少。当然,这就需要维护一个前i项最小值的变量,很简单啦。这里还有一个问题,就是如果最大profit都小于0,那不如不卖。就像期货界里大家说的那样,你不交易,就已经超越80%的人了 = =恩 代...
2012-11-02 22:05:03 80
原创 Balanced Binary Tree
[code="java"]/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public cl...
2012-11-01 23:38:29 56
原创 写到现在的一点点感想
实验室和公司看了这么些时候代码 然后晚上回寝室写leetcode 确实有一种很不一样的感觉。因为都是用java 大家懂的 用起来确实很方便,但是不知不觉会让程序员少想很多东西,更多的是设计和架构方面的东西。可是从基础代码就如此省心,写出来代码质量和效率可想而知。无怪乎邓公要鄙视我们这些只会写java的人了。。。这几天写算法的体会就是代码结构的堆砌是一种思路,基本算法又是一种思路,并不能说设...
2012-10-31 21:33:21 117
原创 Anagrams
这题实在是没懂它的意思。。。囧啊[code="java"]import java.util.HashSet;public class Solution { public ArrayList anagrams(String[] strs) { ArrayList results = new ArrayList(); HashSet anas ...
2012-10-31 00:33:34 93
原创 Add Two Numbers
这题不难 直接上递归就行[code="java"]/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * n...
2012-10-30 23:03:48 60
原创 Add Binary
[code="java"]public String addBinary(String a, String b) { int x = Integer.parseInt(a, 2); int y = Integer.parseInt(b, 2); return Integer.toBinaryString(x + y);}[/code]一开始直接用Int...
2012-10-29 00:07:02 55
原创 4Sum
本来以为只要在3Sum外面再包一层循环就好了,可是。。。在Judge Large的时候还是超时了 呜呜呜[code="java"]public class Solution { public ArrayList fourSum(int[] num, int target) { Arrays.sort(num); ArrayList result...
2012-10-27 22:49:56 47
原创 3Sum Closest
这题的思路和3Sum一样,只是要考虑一下k在j+1之后是不是需要减1,因为不是0而是绝对值最小,所以有点难考虑= = 我就懒得去想直接没-1 汗啊[code="java"]public class Solution { public int threeSumClosest(int[] num, int target) { Arrays.sort(num); ...
2012-10-27 21:08:56 69
原创 3sum
一直没看清英文题目,导致各种WA!唉唉唉。。。通过Judge Small后:[code="java"]public class Solution { public ArrayList threeSum(int[] num) { int length = num.length; ArrayList results = new ArrayLis...
2012-10-27 01:51:10 56
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人