摘要: Valid Anagram 要点:简单题,但是不要和Anagram那题用同样的方法验证,那题需要多个string之间找anagram,所以要encoding,而这题只是2个之间,就用一个count map然后一个加一个减就可以。为了简化条件,可以用collections.defaultdict(in 阅读全文
posted @ 2016-06-12 05:08 absolute100 阅读(60) 评论(0) 推荐(0) 编辑
摘要: Different Ways to Add Parentheses 要点:这题是另一种递归方式:分治,进一步说是catalan number方式的分治。比较有意思的是和Remove Invalid Parentheses这题的对比,remove里是从左到右递归。首先这题肯定不能这样递归,因为没法同步 阅读全文
posted @ 2016-06-12 05:07 absolute100 阅读(128) 评论(0) 推荐(0) 编辑
摘要: Search a 2D Matrix II 要点:不讨论O(n)算法,O(lgn)的算法可以用四分法,每次可以去掉2个象限,如何想是哪两个?按照递增的顺序,如图。注意这题的binary search部分不是search target或者 =target, 而是普通的binary search,只是在 阅读全文
posted @ 2016-06-12 05:06 absolute100 阅读(82) 评论(0) 推荐(0) 编辑
摘要: Sliding Window Maximum 要点:这题O(nlgk)的算法很简单,就是用个max heap,当然还有O(n)的算法。具体的就是用deque,deque中maintain从大到小的顺序。显然,deque头就是每个sliding window的max值。这里的问题是移动到下一个元素的时 阅读全文
posted @ 2016-06-12 05:05 absolute100 阅读(96) 评论(0) 推荐(0) 编辑
摘要: Product of Array Except Self 要点:和Candy之类的都是一个路数,注意这题已经限定了n 1,所以不用考虑n 阅读全文
posted @ 2016-06-12 05:04 absolute100 阅读(59) 评论(0) 推荐(0) 编辑
摘要: Delete Node in a Linked List 要点:简单题,把下一个值移到当前值,然后把下一个删除(就是node.next连接到node.next.next) 错误点: 注意不是和最后一个交换,之所以会错是因为要检查node是不是最后一个,只有不是队尾才能这么做 不是循环左移,O(1)就 阅读全文
posted @ 2016-06-12 05:03 absolute100 阅读(89) 评论(0) 推荐(0) 编辑
摘要: Palindrome Linked List 要点:暴力解,找到中点,然后reverse后半段,再从两边向中间比较。 错误点: reverse中pre初始为None而不是slow:因为有可能odd或者even,所以从两边向中间可能left.next==right或者left==right。第一种情况 阅读全文
posted @ 2016-06-12 05:02 absolute100 阅读(86) 评论(0) 推荐(0) 编辑
摘要: Number of Digit One 要点:从低到高每一位累加,需要highbits,lowbits,base。基本的rule是每隔base会有1个one,一共多少个base?有3种情况 1, ==1, 1有highbits+1,0,而不是n highbits/lowbits/curbit要在lo 阅读全文
posted @ 2016-06-12 05:01 absolute100 阅读(80) 评论(0) 推荐(0) 编辑