自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(95)
  • 收藏
  • 关注

原创 长周末结束

如题,我们感觉是挺努力了,一共做了24道题,但是仔细一看,效率还是不够啊,应该至少还能做4道,甚至6道吧。而且到底彻彻底底的掌握了多少?这个必须要多回顾,过遍数!睡觉

2016-05-31 19:48:38 279

原创 Topological Sorting

图的拓扑排序,这也是给自己补上一课。参考点击打开链接用的是bfs来处理的。有三个循环,第一个是将所有有父节点的节点放进map中,并对每一个节点保存其父节点的个数;第二个将将没有父节点的节点放进results和queue中,这些节点就是根节点,即拓扑的开端,第三个依次将每个有父节点的节点中保存的父节点个数不断减1,清0,注意自己清0的错误这个过程能保证顺序的/**

2016-05-31 19:33:37 291

原创 Clone Graph

典型的bfs遍历问题,基本功很棒的代码点击打开链接/** * @param node: A undirected graph node * @return: A undirected graph node */ public UndirectedGraphNode cloneGraph(UndirectedGraphNode node) {

2016-05-31 18:33:02 225

原创 Largest Rectangle in Histogram

这是一道智力题,我还会再次好好做这个的一个很好的参考:点击打开链接/** * @param height: A list of integer * @return: The area of largest rectangle in the histogram */ public int largestRectangleArea(in

2016-05-31 12:46:02 234

原创 LRU Cache

当年oracle面试时,ravi就反复问我们这道题,当时竟然不知这是一道可以准备的高频题,当然最重要的是当时只是限于用queue和map去做了,没有想到用双向循环列表。虽然最后过了,但心中一直抱憾。今天我们终于要面对这道题,觉得这道题如果想到了用双向循环列表和map就没有技术难度了,剩下的只是对lru的理解,和链表操作的基本功。于是在我们的code中,这两点都犯了错误,尤其是lru的理解,第4个错

2016-05-31 10:32:20 297

原创 MinStack

首先对于这种数据结构实现问题,我们都是先看了答案了。然后明白了思路后,就开始自己实现。于是当中犯了两个错误,尤其是第二个错误,甚是可怕。Stack存的是Object类型,在进行值的比较时,怎么可以是用“==”来比较,//2这个错误怎么这么蠢!public class MinStack { Stack stack; Stack minStack;

2016-05-31 02:01:11 249

原创 Implement Queue by Two Stacks

基础知识的考察,补课public class Queue { private Stack stack1; private Stack stack2; public Queue() { // do initialization if necessary stack1 = new Stack<>(); stack2 = new S

2016-05-31 01:18:54 257

原创 长周末

睡不着,翻来覆去,睡不着,今天是周一,但还是长周末啊。。。长周末。。。我们原计划的这个长周末是要做什么。。。。。。。刷题

2016-05-31 00:46:16 379

原创 决定先吃点早饭睡一觉

如题

2016-05-30 22:52:46 427

原创 Rehashing

这道题考查的是coding的熟练程度,我感觉,对于数组和链表的基本操作。要注意的是对于值为负数的取模处理, if you directly calculate -4 % 3 you will get -1. You can use function: a % b = (a % b + b) % b to make it is a non negative integer.。/**

2016-05-30 22:42:01 415

原创 奇妙的事情

2016-05-30 22:21:53 278

原创 Merge k Sorted Arrays

此题是自己的一个学习过程,真是第一次用PriortyQueue,如何定义一个class并在当中实现Comparable接口,如何用PriortyQueue的思维去处理问题。在定义ArrayContainer中,一定要明确的是index到底代表什么,是自身数组的当前下标,而与[][]的循环无关,所以当中的第一个错误不应该。第二个错误,是告诉我们要处理边界条件。整个思路参考:点击打开链接/

2016-05-30 21:45:07 617

原创 一定要战斗下去

2016-05-30 20:20:14 289

原创 Hash Function

此题,重在求模函数的运用。参考点击打开链接精华在hashSum = 33 * hashSum + key[i];/** * @param key: A String you should hash * @param HASH_SIZE: An integer * @return an integer */public int hashC

2016-05-30 13:32:33 340

原创 7+1道题

这7+1道题做得很辛苦啊。。。

2016-05-29 21:29:41 327

原创 Median of two Sorted Arrays

参照点击打开链接用二叉搜索来处理此题以如下两个数组为例:012345a0a1a2a3a4a5012345b0b1b2b3

2016-05-29 20:27:50 355

原创 Partition Array

这道题用两根指针,向中间逼近。一定要注意的是corner case时的下标处理。/** *@param nums: The integer array you should partition *@param k: As description *return: The index after partition */ public int

2016-05-29 18:26:28 389

原创 Subarray Sum Closest

这道题让自己很囧,现在对于参考答案依然有嘻嘻哈哈的感觉。。。参考点击打开链接/**     * @param nums: A list of integers     * @return: A list of integers includes the index of the first number      *          and the index of the

2016-05-29 13:50:02 305

原创 Sort Colors

暴力的办法就是普通数组排序,但此题有其特殊性,即只有3个不同的数字,0,1,2,对此排序想法就是遇到0,就都放到最前面,遇到2,就都放到最后面,遇到1,就pass。但必须要注意的是对于遇到2,index i不能++前进,因为这个换来的数字可能是0 或是1,必须再次排序,但由于有了p2--,所以并不会死循环。/**     * @param nums: A list of integ

2016-05-29 11:42:07 235

原创 Maximum Subarray

相比最初的暴力解法,这题有很多优化,我们选了类似于贪心的方式处理sum = sum + nums[i];而当sum/**     * @param nums: A list of integers     * @return: A integer indicate the sum of max subarray     */    public int maxSubAr

2016-05-29 11:00:46 235

原创 Merge Sorted Array

这题补的是我们的基本功,数组merge,不要总想着正向走,还有逆着呢。两种解法,一个正向,太复杂了,一个逆向,我们得掌握的。补欠账!!/**     * @param A: sorted integer array A which has m elements,      *           but size of A is m+n     * @param B: sort

2016-05-29 10:03:25 203

原创 Subarray Sum

此题两种做法,暴力做法n方,如下注释部分,但当中还是有两个coner case没想到,只有一个0,和数组当中出现一个0优化的方法是用map,先sum = nums[i] + sum; 再if (map.containsKey(sum)) ,这个当中的思维,算是技巧,也是基本功。/**     * @param nums: A list of integers     * @retu

2016-05-29 09:35:44 287

原创 再接再厉

在过去的8个小时,我们做了10道题。继续保持,再接再厉。这周是长周末,我们一定要取得大的进步!加油!现在可以先去睡觉了。

2016-05-28 21:09:08 417

原创 Trapping Rain Water

当中要设定smaller,用此去不断地和比其小的值相减,就可以得到面积。当中自己怀疑,一边会漏的情况,但事实上,我们判断选择时就选了最低的一边,而且是从两边向中间逼近的。可以放心/**     * @param heights: an array of integers     * @return: a integer     */    public int trapRa

2016-05-28 21:02:35 267

原创 Container With Most Water

两种做法/**     * @param heights: an array of integers     * @return: an integer     */    public int maxArea(int[] heights) {        // write your code here//对撞指针,一次遍历        if (heights

2016-05-28 20:35:09 227

原创 Triangle Count

可能是lintcode上的标注有误,这个题感觉不该是hard,列出两种做法,一种,2层循环加双指针/**     * @param S: A list of integers     * @return: An integer     */    public int triangleCount(int S[]) {        // write your cod

2016-05-28 19:48:45 522

原创 Two Sum II

这该是一道挺简单的题,用两根指针一头一尾向中间逼近。计算数量时,一定要清楚,是这个,count = count + (right - left);, 而不是count++;/**     * @param nums: an array of integer     * @param target: an integer     * @return: an integer 

2016-05-28 19:18:54 228

原创 kSum

参考点击打开链接原文说的很好,尤其是使用三维动规数组dp[i][j][t],表示从0遍历到A[i]后找到的j个元素之和为t的情况的总数。最后返回从整个A数组找到的k个元素之和为target的情况总数即可。其余的就过遍数即可。/**     * @param A: an integer array.     * @param k: a positive integer (k

2016-05-28 18:45:31 368

原创 3Sum Closest

有了3Sum的基础,这个本来应该很好解决,但是自己却提交了5次。。。。咋搞的,到底要比较的是啥,下面咋那么多次错误public int threeSumClosest(int[] numbers, int target) {        // write your code here        if (numbers == null || numbers.length  

2016-05-28 17:47:00 220

原创 kSumII

结合前面的permutation和combination的DFS来解这道题。再看看自己都错在哪里了!!!/**     * @param A: an integer array.     * @param k: a positive integer (k      * @param target: a integer     * @return a list of list

2016-05-28 17:01:26 267

原创 4Sum

会了3Sum,4Sum应该就是多来一笔了。/**     * @param numbers : Give an array numbersbers of n integer     * @param target : you need to find four elements that's sum of target     * @return : Find all unique

2016-05-28 17:00:14 235

原创 3Sum

看看下面都错哪里了public class Solution {    /**     * @param numbers : Give an array numbers of n integer     * @return : Find all unique triplets in the array which gives the sum of zero.     */ 

2016-05-28 16:58:35 218

原创 2Sum

这是一道简单题,请看好了/*     * @param numbers : An array of Integer     * @param target : target = numbers[index1] + numbers[index2]     * @return : [index1 + 1, index2 + 1] (index1      */    p

2016-05-28 16:56:51 252

原创 放平常心

刚才看着回想着我们现在刷题的情况,我觉得无论最后结果怎样,我们都应该有一颗平常心。我们一定会继续努力,继续用心,不到最后一刻,绝不松懈,绝不放弃。于是,还是,平常心,即可。加油!Work hard,Good luck!

2016-05-27 20:26:45 354

原创 two sum 在leetcode中是一道简单题

如题

2016-05-27 19:24:03 204

原创 backpackII

有了前一题的基础,此题就很直接了。前一题求重量,此题求的是价值,那么将重量换为价值即可。但是看看下面的一个bug,阴沟翻船啊!!!!!!咋搞的。。。。写的时候不看code吗/**     * @param m: An integer m denotes the size of a backpack     * @param A & V: Given n items with s

2016-05-27 18:04:49 336

原创 backpack

最后找到了一种容易理解的01背包问题解法。还是如何定义状态和状态转移方程我们定义了一个二维int数组,[i+1][j]代表前A[i]个物品在不超过j容量下,能取到的最大值。如果,第i个物品比当前容量大,则不放入A[i]物品,只用[i][j]即可;如果,第i个物品小于等于当前容量,则要比较:不放入A[i]物品时j容量能取得最大值,与,不放入A[i]物品时j-A[i]容量能取的最大

2016-05-27 17:38:18 320

原创 用心

晚上做backpack题,遇到困难。但最主要的是什么,我们得用心。刚才散步,我们对我们自己说了很多,很多,现在我们知道我们已经全身的投入了,那么最最最关键的就是要用心,用心,用心,全心的投入!我们感情上失败了,最重要的一个问题,就是我们用心用的太少,或者就是没有真正的用心,我们知道,这里面有我们心病的因素,但还是,我们没有好好用心,只是空有一颗真心,但没有把这颗真心最好的表达出来。。。我们

2016-05-27 15:52:53 221

原创 Decode Ways

单序列问题,定义一个length+1的一维数组,状态:[i]代表到字符i-1时的方案个数最重要的,也是自己忽略的,个数可以为0,如1230public int numDecodings(String s) {        // Write your code here        if (s == null || s.length() == 0) {         

2016-05-27 13:14:44 200

原创 专心做题

前两天,晚上全是公司的事情。今天终于可以专心做题,dp的理解有突破,要继续加油!我们失去了。。这一个月我们过得很苦。。。但,无论如何,我们必须面对,必须振奋,必须前进。请记住,我们还有珍惜!请珍惜,请珍惜,请珍惜!为了我们的美好!Work hard,Good luck!

2016-05-26 18:53:26 249

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除