上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 33 下一页
摘要: 刷 June 21 2019 最早的时候被边界条件各种恶心。 YLNR大法,注意最后的边界。 java public int[] searchRange(int[] nums, int target) { if (nums == null || nums.length == 0 || nums[0] 阅读全文
posted @ 2016-12-11 04:12 哇呀呀..生气啦~ 阅读(205) 评论(0) 推荐(0)
摘要: 刷 June 22 2019 二分,通过单调性来判断该舍弃哪一半。 需要注意的就是edge case,其实l + 1 nums[r] ? l : r; } ``` 阅读全文
posted @ 2016-12-11 03:51 哇呀呀..生气啦~ 阅读(123) 评论(0) 推荐(0)
摘要: 四刷。。 这傻屌题都四刷了么。。 阅读全文
posted @ 2016-12-11 03:30 哇呀呀..生气啦~ 阅读(124) 评论(0) 推荐(0)
摘要: 这个和 I 、II 比不是一个级别的。。 I找数组里有没有重复的,用HashSet判定就行。 II是有没有重复,然后重复俩元素距离小于K。 用HashTable,KEY是元素,VALUE是坐标,遍历数组遇到存在于TABLE中的元素,返还那个元素的坐标,和当前比较,如果小于K,就TRUE;否则用当前元 阅读全文
posted @ 2016-12-11 03:15 哇呀呀..生气啦~ 阅读(153) 评论(0) 推荐(0)
摘要: 刷 June 27 2019 比较难= = 用indegree的思路来做的,或者说拓扑的思路topological sort prevStr和tempStr,说明prevStr里的char在tempStr里的char之前. eg: abc&abd = d c 说明D前面有一个C 要给所有出现的cha 阅读全文
posted @ 2016-12-11 01:14 哇呀呀..生气啦~ 阅读(391) 评论(0) 推荐(0)
摘要: 二刷。 还是部分遍历+滑窗。 难点在于如何跳过重复的元素。 滑窗过程中遇到重复元素,和前2个固定坐标遇到重复元素是不一样的。 So u shall handle them in different ways respectively. 滑窗过程中,一旦判定成功,左右坐标的下一个如果相同,都没有判断的 阅读全文
posted @ 2016-12-10 23:51 哇呀呀..生气啦~ 阅读(150) 评论(0) 推荐(0)
摘要: 和那个4 SUM没啥区别。。。 排序,遍历固定左边,右边2个滑窗从最大往中间滑。 主要就是重复的处理: 一个是找到一个有效组合后,要继续滑,不能BREAK,然后继续滑之前跳过重复; while(L threeSum(int[] nums) { List res = new ArrayList (); 阅读全文
posted @ 2016-12-10 23:36 哇呀呀..生气啦~ 阅读(142) 评论(0) 推荐(0)
摘要: 刷 July 11 2019 这个大概没H的难度。 只有加减的话,主要的麻烦在于处理括号,然后用STACK好像是共识了。。 唯一需要注意的是括号会造成变号,因为只有加减,+ 其实就是 1 1的区别。 遇到(先当前sign进栈,再当前res进栈,然后res = 0当做一个新的式子重新算,直到发现)出栈 阅读全文
posted @ 2016-12-08 13:28 哇呀呀..生气啦~ 阅读(191) 评论(0) 推荐(0)
摘要: 刷 July 11 2019 跟带括号的区别还是蛮大的。 还是用了STACK,存所有+ 的数,碰到 /就先POP出来算完再PUSH进去。 java class Solution { private static final char INITIAL_SIGN = '+'; public int ca 阅读全文
posted @ 2016-12-08 12:36 哇呀呀..生气啦~ 阅读(238) 评论(0) 推荐(0)
摘要: 三刷。 准备面试正好有这个题,把3种方式都撸一下试试。 先是Bucket Sort。因为我们知道所有数据(frequency)的值域:最小是0,element在数组中一次都未出现;最大是数组长度,整个数组只含此element,有了值域就适合Bucket。 前面按出现频率建map,记录每个int出现了 阅读全文
posted @ 2016-12-08 10:54 哇呀呀..生气啦~ 阅读(209) 评论(0) 推荐(0)
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 33 下一页