大概意思就是把2D list里面的element全部遍历一遍。 注意啊,一开始理解题意搞错:我以为是必须要排序正确,所以上来就PriorityQueue+HashMap搞得无比复杂。其实,这个跟一个nxn的matrix遍…
分类:LeetCode
LeetCode[4] - Binary Tree Level Order Traversal
普通的BFS. 唯一小心就是:每次要把每一Level 的放在一个list里面。也就是说,一旦queue里有东西,那一定就全部是这一个level的。先把size固定一下,把queue里面的东西全部加到这个level的lis…
LeetCode[11] - Grey Code
李特这特题目有点蛋疼,因为目前只接受一种结果。 我做的恰好和它要的结果不一样,但是我觉得我这种走法走出来也是没错的。 基本想法就是从一个点开始往一个方向走,每次flip一个bit, 碰壁的时候就回头走。 /* The g…
LeetCode[23] - Group Anagrams
M 方法一: 60% 和check anagram 想法一样:转化并sort char array,用来作为key。 把所有anagram 存在一起。注意结尾Collections.sort(). O(NKlog(K))…
LeetCode[13] - Wiggle Sort
第一遍想太多. 其实做一个fall-through就能把问题解决,原因是因为:这样的fall-through每次在乎两个element,可以一口气搞定,无关乎再之前的elements。 特别的一点:flag来巧妙的掌控山…
LeetCode[18] - Binary Search Tree Iterator
李特这的这个题目不错。写一遍example就能看出来inorder traversal。当然啦,不能直接全部traverse了,因为题目说有空间限制。 那么就traversal on the fly, 先左手DFS, 然…
LeetCode[20] - Binary Tree Longest Consecutive Sequence
屌炸天的4行代码。 我洋洋洒洒那么多行,最后还不work.看了solution, 如此精简。 主要想法: Recursive用好。首先在这个level比一比,可否成。 不成的话,另立门户。 然后左右开弓。再把结果拿过来比…
LeetCode[2] - Merge K Sorted Lists
事情是这样的。今天李特除了一题,据说是Hard。 我一看好像曾经见过,于是做了做,时间复杂度最后大约是O(kn)*O(logn). 因为用到了PriorityQueue, 里面的offer() 和 poll()都是O(l…
LeetCode[3] - LRU Cache
当李特第一次把这题拿出来的时候,我是慌的。 啥是LRU Cache啊? 接下去看吧。 后来,我很天真的来了一个O(n) 的解法,结果果然时间过多。天真解法很简单啊:一个map<key,value>存数值。一个…
LeetCode[21] - Encode and Decode Strings
不难,但是要考虑好如何handle “”。 因为平时都把“” 当做Null对待,这里就犯浑了。 这题,要把Null特别mark一下为‘NULL’,而特别处理 “” empty string. /*…
LeetCode[12] - Paint Fence
这题目很有意思. 一开始分析的太复杂, 最后按照这个哥们的想法(http://yuanhsh.iteye.com/blog/2219891) 的来做,反而简单了许多。 设定T(n)的做法,最后题目化简以后就跟Fibona…
LeetCode[9] - Binary Tree Paths
一幕了然. DFS把tree给过了. 用ArrayList存item比较方便,记得每次backtrack的时候把末尾的item去掉 list.remove(list.size() - 1); /* Given a bin…