随笔分类 -  Leetcode

上一页 1 2 3 4 5 6 7 ··· 12 下一页
摘要:最后更新 四刷 10 Jan 2017 白送的题。 注意3点: 1) int[][] dp最好长宽都多加一行。要不累加的时候第一行第一列都要当做特殊情况处理= = 2) 注意index的选取= =容易混乱 3) 我他妈了个逼的长得太帅了。 Time: init: O(mn) query: O(1) 阅读全文
posted @ 2017-01-11 03:12 哇呀呀..生气啦~ 阅读(152) 评论(0) 推荐(0)
摘要:最后更新 二刷。 10 Jan 2017 树状数组的话(FenWickTree)从一维延展到二维,并没有影响使用。 直接秒掉好吧。。太爽了。 Time: init: (MNlgMN) query/update : lgMN 一刷。 01 Dec 2016 从一维变成二维了。 线段树也能用,小tric 阅读全文
posted @ 2017-01-11 02:59 哇呀呀..生气啦~ 阅读(283) 评论(0) 推荐(0)
摘要:最后更新 四刷 09 Jan 2017 区间内频繁查找,更新。。 先用线段树(SegmentTree)来做,这个题几乎是把线段树的操作都用了一遍。 每个NODE只有4种可能 1)如果l r包含了整个NODE,那么就是这个node; 2)如果l r在整个NODE范围的外面,那么无视此node; 3)如 阅读全文
posted @ 2017-01-11 02:37 哇呀呀..生气啦~ 阅读(213) 评论(0) 推荐(0)
摘要:最后更新 二刷? 是个E难度的。。无所谓了。 区间内求和,但是不需要更新,只是反复差找,所以不是很有必要用线段树。 Time: Initialization: O(n) query: O(1)... Space: O(n) java public class NumArray { int[] dp; 阅读全文
posted @ 2017-01-10 11:12 哇呀呀..生气啦~ 阅读(165) 评论(0) 推荐(0)
摘要:最后更新 二刷 08 Jan 2017 一刷忘了什么时候做的,只是觉得这几个题挺好的,一步一步手动构建线段树,最终理解了这个数据结构,并且后面有利用的地方。 其实重要的3个东西题目已经提供了: 1) left end) return null; SegmentTreeNode tempRoot = 阅读全文
posted @ 2017-01-09 06:40 哇呀呀..生气啦~ 阅读(116) 评论(0) 推荐(0)
摘要:最后更新 二刷 08 Jan 2017 和76、159很像。。 2 pointers.. 通过判断是否每一次是有效读取来增减accumulator,从而判断当前是否符合规定,再来更新maxLength Time: O(n) Sapce : O(1) 阅读全文
posted @ 2017-01-09 06:03 哇呀呀..生气啦~ 阅读(209) 评论(0) 推荐(0)
摘要:最后更新 二刷 08 Jan 17 回头看了下一刷的,用的map,应该是int[256]的意思,后面没仔细看cuz whatever I was doing at that time.. wasnt good 做法和LC 76非常像,用2 Pointers + 计数来判断是否满足。 这里“有效读取” 阅读全文
posted @ 2017-01-09 05:54 哇呀呀..生气啦~ 阅读(126) 评论(0) 推荐(0)
摘要:最后更新 一刷 08 Jan 2017 昨天Amazon group面结束,刚回家。 国内以前喜欢的女生结婚了,嘿嘿...好开心呀~~ 这次面试感觉自己的做法完爆别人,比什么2 greedy好多了= = 总之表现比想象的好,最后一面的面试官真是聪明得一逼,我的思路稍微说她就明白,跪了,这也太出色了。 阅读全文
posted @ 2017-01-09 05:21 哇呀呀..生气啦~ 阅读(418) 评论(0) 推荐(0)
摘要:最后更新 三刷 看起来是level order traversal,但是直接硬来的话,doing this iteratively requires O(n) space for a Stack; while recursively doing this requires O(n) as well 阅读全文
posted @ 2016-12-30 08:28 哇呀呀..生气啦~ 阅读(166) 评论(0) 推荐(0)
摘要:刷 June 12 2019 直观做法是保持滑窗,滑窗内出现的字母用MAP记录位置。 单向扩大滑窗,发现已出现字母,要查上次出现的位置,移动左指针。 一开始考虑的是移动左指针之后,要从MAP中删除移动过程中的字母,其实不用, 因为继续的时候,发现MAP中的字母出现在滑窗外,证明是应该被删除的,所以需 阅读全文
posted @ 2016-12-27 10:52 哇呀呀..生气啦~ 阅读(120) 评论(0) 推荐(0)
摘要:最后更新 二刷 木有头绪啊。。 看答案明白了。 用的是two sum的思路。 比如最终找到一个区间,[i,j]满足sum = k,这个去见可以看做是 [0,j]的sum 减去 [0,i]的Sum. 维护一个map,来记录0 i的和,我们希望 0~i + k = 0 ~ j ,这样就可以更新一次i~j 阅读全文
posted @ 2016-12-27 10:41 哇呀呀..生气啦~ 阅读(181) 评论(0) 推荐(0)
摘要:刷 June 12 2019 O(n)做就是滑窗,本质还是利用了单调性。左右指针固定只能移动左边,因为移动右边+1肯定不是最优解。2pointer还要再体会下。 follow up要求 O(NlgN) lgN一般是二分,N次二分= =但是没仔细想。看了下答案原来是 sum[n]代表1 n的和 遍历1 阅读全文
posted @ 2016-12-27 09:38 哇呀呀..生气啦~ 阅读(187) 评论(0) 推荐(0)
摘要:最后更新 二刷 这个题做得真蠢。上来想的复杂了,想的是quick sort之类的,然后一个一个交换。 实际上直接交换就行。。没啥特别的。 回头看一刷也是同样的思考过程= =宿命论啊。。 Time: O(n) Space: O(1) java public class Solution { publi 阅读全文
posted @ 2016-12-25 13:58 哇呀呀..生气啦~ 阅读(198) 评论(0) 推荐(0)
摘要:最后更新 四刷(我怎么觉得三刷没做完就四刷了。。) 典型的Partition,总结出一个general的方法了。 Time: O(n) java public class Solution { public void sortColors(int[] nums) { if (nums.length 阅读全文
posted @ 2016-12-25 12:31 哇呀呀..生气啦~ 阅读(175) 评论(0) 推荐(0)
摘要:最后更新 二刷 看到这个题有点懵逼。 第一反应是二分,马上觉得不对,又觉得从右上开始(因为做过类似的),也不行。 回头看一刷答案发现居然是,直接PQ。。。。 max Heap就可以了,注意某些时候是可以break的。 到某一个点的时候,能保证比这个点小的元素多于K,就没必要继续添加了。 判断式是(i 阅读全文
posted @ 2016-12-25 12:13 哇呀呀..生气啦~ 阅读(187) 评论(0) 推荐(0)
摘要:最后更新 四刷? K largest什么的题是面试的高频题,这次尝试搞清楚。 首先是双指针,锁定区间,每次找一个pivot,然后按这个分边。 我是选一个pivot,然后比Pivot大的放左边,小的放右边,然后看看K落在P的左边还是右边,来缩小区间。 最坏的情况每次都找到最小的元素,而我们需要最大的( 阅读全文
posted @ 2016-12-25 09:53 哇呀呀..生气啦~ 阅读(152) 评论(0) 推荐(0)
摘要:最后更新 三刷。 还是双指针。 因为不用查重了,反而简单了。每次遇到更接近的值更新一下。 java public class Solution { public int threeSumClosest(int[] nums, int target) { int res = 0; int diff = 阅读全文
posted @ 2016-12-23 23:38 哇呀呀..生气啦~ 阅读(106) 评论(0) 推荐(0)
摘要:最后更新 二刷。。 其实没那么简单。。。 可以维持2个set,一个是所有的elements,一个存放可组合的所有sum,每次add的时候更新2个set,这样find是O(1),然而TLE了。。 另一个做法是添加直接加,然后查的时候看看能不能组合出来所需要的值。 edge case着实难想到= = a 阅读全文
posted @ 2016-12-23 11:46 哇呀呀..生气啦~ 阅读(115) 评论(0) 推荐(0)
摘要:最后更新 二刷。。至少是二刷。。 感觉linked list的题可操作性都比较小,基本都是楞做,难在edge cases上,一般通过dummy这种可以解决烦恼。。 这个题就俩HEAD代表ODD和EVEN就行了。。 最后别忘了odd的尾连着even的头,even的尾指向NULL。 否则就成环了,这个题 阅读全文
posted @ 2016-12-23 10:28 哇呀呀..生气啦~ 阅读(147) 评论(0) 推荐(0)
摘要:最后更新 一刷。 这个题不像是一刷,Hedvig的面经题。 K largest之类的题一般都可以用priority queue。 这里PQ里存的是,每个LIST的首NODE。 可以考虑divide and conquer,中文好像叫分治递归?这里的K个sorted lists已经给我们分治好了,我们 阅读全文
posted @ 2016-12-23 10:15 哇呀呀..生气啦~ 阅读(151) 评论(0) 推荐(0)

上一页 1 2 3 4 5 6 7 ··· 12 下一页