囧
sjphiChina
代码是最为耐心、最能忍耐和最令人愉快的伙伴,在任何艰难困苦的时刻,它都不会抛弃你。
展开
-
Subarray Sum Closest
这道题让自己很囧,现在对于参考答案依然有嘻嘻哈哈的感觉。。。 参考点击打开链接 /** * @param nums: A list of integers * @return: A list of integers includes the index of the first number * and the index of the原创 2016-05-29 13:50:02 · 305 阅读 · 0 评论 -
Word Search
和island number有相同之处,都是要dfs遍历周围的点,并设置新值,但是在前者不需要返回结果,后者的返回结果是或的关系,而自己一开始却是按照与的结果返回的,直接思路就错了。。 public class Solution { public boolean exist(char[][] board, String word) { if (board == null原创 2016-06-12 01:46:07 · 225 阅读 · 0 评论 -
MinStack
首先对于这种数据结构实现问题,我们都是先看了答案了。然后明白了思路后,就开始自己实现。于是当中犯了两个错误,尤其是第二个错误,甚是可怕。 Stack存的是Object类型,在进行值的比较时,怎么可以是用“==”来比较,//2这个错误怎么这么蠢! public class MinStack { Stack stack; Stack minStack;原创 2016-05-31 02:01:11 · 249 阅读 · 0 评论 -
One Edit Distance
如果只能做一次修改, 1. modified : 长度相等 2. deleted:长度差1 那个注释的错误,忽略了,两个相同的str,应该返回false啊 public class Solution { public boolean isOneEditDistance(String s, String t) { int sl = s.length(), tl = t原创 2016-06-12 12:52:47 · 238 阅读 · 0 评论 -
Valid Sudoku
一道很基本功的问题,耗费了自己大量的时间找bug,原来bug就是,看下面 public class Solution { public boolean isValidSudoku(char[][] board) { if (board == null || board.length == 0 || board[0] == null || board[0].length =原创 2016-06-06 22:54:31 · 351 阅读 · 0 评论 -
Word Ladder
这个遍数刷的,即便刚才没办法得陪聊,但是下面那个错误犯得,竟然一直没发现,耽误了那么长时间,否则一次就过了啊啊啊啊啊啊啊啊啊啊啊啊啊 public class Solution { public int ladderLength(String beginWord, String endWord, Set wordList) { Queue queue = new Link原创 2016-06-13 13:47:43 · 278 阅读 · 0 评论 -
Inorder Successor in BST
好吧,自己一开始给写反了,写成前置点了。。。 后继点,即第一个比node大的点。 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { va原创 2016-06-14 00:30:27 · 332 阅读 · 0 评论 -
Combination Sum
这道题做成这样子。第二个错误忘加了,也就罢了,第一个是怎么想的,在list里加sum做啥的。昨晚糊涂了,怎么刚才也没看出来。这是怎么了,再痛苦,委顿也不是这样的吧!!!!!! public class Solution { public List> combinationSum(int[] candidates, int target) { List> result =原创 2016-06-15 02:46:30 · 257 阅读 · 0 评论 -
Evaluate Reverse Polish Notation
自己一开始竟然还写了一种反着做的,也是棒棒哒。。。 public class Solution { public int evalRPN(String[] tokens) { Stack stack = new Stack<>(); String operators = "+-*/"; for (String str: tokens) {原创 2016-06-18 08:10:38 · 261 阅读 · 0 评论 -
Single Number III
好好看看自己的迭代史 public class Solution { public int[] singleNumber(int[] nums) { Set set = new HashSet<>(); for (int i: nums) { if (!set.add(i)) { set.remove原创 2016-06-18 15:32:21 · 183 阅读 · 0 评论 -
Flatten 2D Vector
此题有两种做法,都是O(n)的时间复杂度,但一个n的空间,一个1的空间。 我们参考了1的空间,试着自己处理n的空间,于是看到了如下: public class Vector2D implements Iterator { List> list = null; int cur = -1; Iterator iterator = null; public原创 2016-06-18 17:34:20 · 386 阅读 · 0 评论 -
Majority Element II
朴素的解法很简单,对于improved的,这个思维很好,得掌握。 另外,那个是否为null的判断一定得做啊!!!!!!! public class Solution { public List majorityElement(int[] nums) { List list = new LinkedList<>(); if (nums == null |原创 2016-06-20 10:42:14 · 216 阅读 · 0 评论 -
Invert Binary Tree
一开始自己还给写反了,红红火火恍恍惚惚哼哼哈嘿 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */原创 2016-06-09 14:20:30 · 220 阅读 · 0 评论 -
Majority Element
感觉是真的困了啊,哈哈哈哈,啦啦啦啦,红红火火恍恍惚惚哼哼哈嘿 public class Solution { public int majorityElement(int[] nums) { int t = nums.length / 2; Map map = new HashMap<>(); int s = 0; for原创 2016-06-09 13:20:49 · 203 阅读 · 0 评论 -
Implement Queue using Stacks
这种基础题,为啥自己一开始的设计总是能想出很邪门的思路来,又是两个stack一起用,于是要用bool来控制用哪个stack,进而lock,线程保护等等就全出来了。。。 想上天啊!! class MyQueue { //boolean pushS1 = true; Stack s1 = new Stack<>(); Stack s2 = new Stack<>(原创 2016-06-09 12:43:38 · 207 阅读 · 0 评论 -
Word Ladder II
这道题,我们给出自己的办法,但总是超时,对于参考答案,我们现在还没有找到合适,最重要的是能说服自己到底优化在哪了,所以先留着,等之后,过两周后,再看此题。原创 2016-06-01 14:44:01 · 382 阅读 · 0 评论 -
Read N Characters Given Read4
此题一定要准确理解题意,字符数组buf是用来存储从文件中读取的字符的,这个搞不明白,这题就无解了。而自己一开始就是没看懂。。。 /* The read4 API is defined in the parent class Reader4. int read4(char[] buf); */ public class Solution extends Reader4 { /原创 2016-06-02 16:54:08 · 249 阅读 · 0 评论 -
Add Binary
我该怎么说呢。。。。。。 现在有两种做法,1种自己刚做的,写了108行代码,循规蹈矩,1种2年前做的,写了28行代码(如果真是当时自己想出来的。。。。。。)。 这个无论如何要掌握: int current = (numa+numb+carry)%2; int carry = (numa+numb+carry)/2; public String addBinary(String a,原创 2016-06-02 19:21:19 · 307 阅读 · 0 评论 -
Contains Duplicate III
这道题确实和之前的I,II有很大差别, 当中自己也是要学甚多新的东西 1. 我们需要学习SortedSet的思维和用法 2. 这种特殊的二叉搜索 3. 知道为啥吗set.remove((long)nums[i - k]); public class Solution { public boolean containsNearbyAlmostDuplicate(int[] nums原创 2016-06-07 23:20:39 · 243 阅读 · 0 评论 -
Remove Duplicates from Sorted Array
又一道。。。。。。。 我们和两年前比。。。。。。。 public int removeDuplicates(int[] nums) { if (nums == null) { return 0; } if (nums.length <= 1) { return nums.length;原创 2016-06-02 23:23:04 · 274 阅读 · 0 评论 -
Game of Life
对于这种题,真要遇上了就认命了。参考点击打开链接,后续的问答,继续关注。 这道题, 关键在于能想到,状态转变 0 : 上一轮是0,这一轮过后还是0 1 : 上一轮是1,这一轮过后还是1 2 : 上一轮是1,这一轮过后变为0 3 : 上一轮是0,这一轮过后变为1 另外,每次比较都是和上一轮状态的比较。 还有,这样写,不是自己想要的结果: //lives = lives + boa原创 2016-06-24 15:59:56 · 283 阅读 · 0 评论 -
Count and Say
这又是一道让我们很囧的题,尤其是当中的第二个for循环。 我真的有些怀疑自己的智力是不是在下降,还是在真正的被封印,我觉得和2年前的都很大的差距。但是无论如何,我们必须要坚持战斗下去!战斗下去!我们仍然要相信我们自己。找到合适的策略,向前冲!!! public String countAndSay(int n) { if (n <= 0) { retur原创 2016-06-03 19:08:29 · 229 阅读 · 0 评论 -
Word Ladder II
leetcode中最难的一道,常做常新 public class Solution { public List> findLadders(String beginWord, String endWord, Set wordList) { List> res = new LinkedList<>(); Set visited = new HashSet<>(原创 2016-06-25 18:36:08 · 560 阅读 · 0 评论 -
Nested List Weight Sum
这应是很简单最入门的dfs问题,但自己却犯了两个问题, 1. 一开始自己只是想着迭代,根本没意识到是dfs问题 2. 看看注释的那个bug,肉眼没发现,最后只能自己编程发现。。。。 /** * // This is the interface that allows for creating nested lists. * // You should not implement it,原创 2016-06-08 22:25:20 · 405 阅读 · 0 评论 -
Merge Two Sorted Lists
基本功,但是自己却忘了最开始的检查!!!!!!!!!!!!!!! /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ public class S原创 2016-06-09 09:09:12 · 187 阅读 · 0 评论 -
Combination Sum IV
这个最后得用dp来做,自己一开始想到的递归在遇到如[1,2,3],target=32时会超时,因为会有181997601种可能,laptop运行了1小时都还没算完。。。 public static int combinationSum3(int[] nums, int target) { int[] array = new int[target + 1];原创 2016-09-02 08:18:17 · 306 阅读 · 0 评论