3
sjphiChina
代码是最为耐心、最能忍耐和最令人愉快的伙伴,在任何艰难困苦的时刻,它都不会抛弃你。
展开
-
Game of Life
对于这种题,真要遇上了就认命了。参考点击打开链接,后续的问答,继续关注。这道题,关键在于能想到,状态转变0 : 上一轮是0,这一轮过后还是01 : 上一轮是1,这一轮过后还是12 : 上一轮是1,这一轮过后变为03 : 上一轮是0,这一轮过后变为1另外,每次比较都是和上一轮状态的比较。还有,这样写,不是自己想要的结果://lives = lives + boa原创 2016-06-24 15:59:56 · 275 阅读 · 0 评论 -
Group Anagrams
勇士要加油啊!!!!!!!!!!!!!!不要阴沟里翻船!!!!!!!!!!!!!这题我们要再次熟悉几件事:1. char[]数组可以排序,变形词通过排序,可以得到相同的基础词;2. Collections.sort()可以对list中的String排序public class Solution { public List> groupAnagrams(String[]原创 2016-06-14 10:46:13 · 217 阅读 · 0 评论 -
Insert Interval
顺着前一题的思路,这一题做得很顺,除了对于list为0的情况考虑欠周,别的情况都考虑到了。加油!/** * Definition for an interval. * public class Interval { * int start; * int end; * Interval() { start = 0; end = 0; } * Inter原创 2016-06-30 12:21:11 · 215 阅读 · 0 评论 -
Longest Substring Without Repeating Characters
一开始自己想的太简单了,于是就2了,那个注释的代码如何处理“dvdf”这样的字符串?好吧,于是找到了一种精妙的解法,用hashmap,精妙在i = map.get(chars[i]);map.clear();好好体会,这也就罢了。但是自己接下来犯得那两个错误,是不是有些太跌份了!!是不是这两天set用多了,搞混了?????public class Solution { pub原创 2016-06-15 13:23:46 · 261 阅读 · 0 评论 -
Sudoku Solver
参考小莹子:点击打开链接public class Solution { public void solveSudoku(char[][] board) { if (board == null || board.length == 0 || board[0].length == 0) { return; } help原创 2016-07-24 10:32:06 · 226 阅读 · 0 评论 -
Find Minimum in Rotated Sorted Array
典型二分法public class Solution { public int findMin(int[] nums) { if (nums == null || nums.length == 0) { return 0; } if (nums.length == 1) { return n原创 2016-06-19 19:34:07 · 204 阅读 · 0 评论 -
Line Reflection
这道题我们要看清了,是平行于Y轴,而不是X轴。我知道我们很累,但也要看清楚题啊!!!public class Solution { public boolean isReflected(int[][] points) { int max = Integer.MIN_VALUE, min = Integer.MAX_VALUE; if (points ==原创 2016-07-27 15:14:47 · 318 阅读 · 0 评论 -
Best Time to Buy and Sell Stock II
思路源自小莹子点击打开链接,总是找到一个递减序列的最底部,然后找到递增序列的最高点,求差值。public class Solution { public int maxProfit(int[] prices) { if (prices == null || prices.length == 0) { return 0; }原创 2016-07-17 00:17:35 · 223 阅读 · 0 评论 -
Sort List
掌握此归并排序list,对于快排,之后熟悉。/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */public class Solution {原创 2016-06-22 23:25:33 · 227 阅读 · 0 评论 -
Meeting Rooms II
参考了标准的贪心解法。其实是先假定minHeap保存n个房间的个数,而当一旦有一个会议的开始时间大于最早的结束时间(另一个会议的),即意味着这两个会议可以共用一个房间,于是房间个数可以减一。/** * Definition for an interval. * public class Interval { * int start; * int end; *原创 2016-06-13 23:51:54 · 519 阅读 · 0 评论 -
Longest Consecutive Sequence
之前竟然还遗漏了这道两年前做过的题。对于n的复杂度,不一定要一次循环才行,可以多个循环嘛!!!可以多个循环嘛!!!可以多个循环嘛!!!public class Solution { public int longestConsecutive(int[] num) { Set set = new HashSet<>(); for (int i: num原创 2016-07-11 00:02:27 · 219 阅读 · 0 评论 -
Copy List with Random Pointer
两次遍历。请一定要明白每次从map取出的value是啥,不要搞混啊。/** * Definition for singly-linked list with a random pointer. * class RandomListNode { * int label; * RandomListNode next, random; * RandomListNod原创 2016-06-24 22:00:55 · 231 阅读 · 0 评论 -
Validate Binary Search Tree
基本功,经典题。虽然是递归解法,但用的却是中序遍历,保证了子节点的必须小于或是大于根节点,所以自己最开始的方法错了。最后都得用Long.MIN_VALUE,我都要笑哭了。。。/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left;原创 2016-06-10 12:41:42 · 238 阅读 · 0 评论 -
Subsets
想说的是,自己在写code的时候,请能够清楚,写的每一点代码都在代表什么,想要怎样的结果,能不能不要不过脑子的写code,能不能对每点code负责啊。看看咋错的。这个遵循模板。public class Solution { public List> subsets(int[] nums) { List> results = new LinkedList<>();原创 2016-06-10 13:18:54 · 324 阅读 · 0 评论 -
Number of Islands
新知,扫描整个grid,将1的周围都设为0(dfs),这样有几个1,就有几个岛至于用union-find的解法,之后研习好了,可以先去吃午饭了public class Solution { public int numIslands(char[][] grid) { int num = 0; if (grid == null || grid.le原创 2016-06-11 03:19:11 · 298 阅读 · 0 评论 -
Implement Trie (Prefix Tree)
如何实现Trie字典。当中有两点:1. TrieNode中我们用的是大小为26的数组,而非map,因为题目本身限定,是字母的存储查询,用数组足够且更省空间。2. boolean isExist,代表从root到此节点所构成的word,是否存在,记住,这个是可以不存在的,即便到其子节点可能存在。class TrieNode { public char c;原创 2016-06-12 05:53:47 · 233 阅读 · 0 评论 -
Binary Search Tree Iterator
自己能不能不要总犯下面那种那么2的错误。。嫩不能尽量明白,自己写的每段code是做啥的,能负责任!!!/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x)原创 2016-06-12 13:11:26 · 265 阅读 · 0 评论 -
Product of Array Except Self
这道题还有更精妙的解法,不过现在我们先采用这个最标准的O(n)做法了。先从左往右一遍,再从右往左一遍。public class Solution { public int[] productExceptSelf(int[] nums) { int[] result = new int[nums.length]; result[0] = 1;原创 2016-06-13 10:37:18 · 218 阅读 · 0 评论 -
Find the Celebrity
我认为这是一道智力题/* The knows API is defined in the parent class Relation. boolean knows(int a, int b); */public class Solution extends Relation { public int findCelebrity(int n) { int原创 2016-06-13 16:46:28 · 375 阅读 · 0 评论 -
Encode and Decode Strings
一定要明白这两个错误是错在哪了!!//sb.append(str.length() + '#' + str); sb.append(String.valueOf(str.length()) + '#' + str);不能再犯了//int i = s.indexOf(start, '#'); int i = s.indexOf('#', sta原创 2016-06-23 21:03:11 · 286 阅读 · 0 评论