自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(122)
  • 收藏
  • 关注

原创 Sorting_Searching 叠罗汉 @CareerCup

类似前面的一道堆箱子普适的解法是回溯,注意这类是求最值的回溯题。另一种解法是LIS,先把其中一维排序,然后对剩下的一维进行LISpackage Sorting_Searching;import java.util.ArrayList;import java.util.Collections;/** * A circus is designing a tower r

2013-11-30 04:36:20 2323

原创 Sorting_Searching 有序矩阵中查找数 @CareerCup

要点就是从右上角或者左下角开始找,每次比较能排除一行或者一列package Sorting_Searching;import CtCILibrary.AssortedMethods;/** * *Given a matrix in which each row and each column is sorted, write a method to find an

2013-11-30 02:20:37 1593

原创 Sorting&Searching 二分法找有空字符串的数组 @CareerCup

要点是找到最近的不是空字符串的位置,然后作为mid,再继续二分package Sorting_Searching;/** * Given a sorted array of strings which is interspersed with empty strings, * write a method to find the location of a given stri

2013-11-29 14:58:56 1397

原创 Sorting&Searching 旋转数组二分法查找 @CareerCup

就是3种情况,写在注释里了package Sorting_Searching;/** * Given a sorted array of n integers that has been rotated an unknown number of * times, give an O(log n) algorithm that finds an element in the ar

2013-11-29 14:30:19 1316

原创 Sorting&Searching 基于变位词的字符串数组排序 @CareerCup

两种排序结果不一样。。。1 实现Comparator接口的compare方法,在里面先把每个string都排序一遍,然后再比较2 用一个Hashtable>的结构,String为排序后的确定的string,LL里面装着各种anagram的变种package Sorting_Searching;import java.util.Arrays;import java.util

2013-11-29 14:09:43 2045

原创 Soring&Searching 合并两个有序数组 @CareerCup

merge,要点是从后往前走package Sorting_Searching;import CtCILibrary.AssortedMethods;/** * You are given two sorted arrays, A and B, and A has a large enough buffer at * the end to hold B. Write a m

2013-11-29 13:50:17 1240

转载 剑指offer面试题总结

http://www.aachin.info/tech/%E5%89%91%E6%8C%87offer%E9%9D%A2%E8%AF%95%E9%A2%98%E6%80%BB%E7%BB%93%EF%BC%881%EF%BC%89/面试题3:查找排序二维数组面试题4:替换空格为%20扩展1-复制排序数组B至尾部有足够空余空间的排序数组A。  (我记得我最近一次感叹逆序思

2013-11-29 13:27:18 2587 2

原创 两道递归/回溯好题的分析:printSquares,maxSum

回溯的题目总是有套路的,结合《递归分解的一些方法 和 回溯 笔记》一文,基本上可以套用这个模板来解决回溯题目。bool solve(configuration conf){ if(no more choices){ // BASE CASE return (conf is goal state); } for(all avail

2013-11-29 12:01:08 2954

原创 递归分解的一些方法 和 回溯 笔记

1 当前处理第一个或最后一个,对其余的递归2 一分为二,对两边做递归3 在一系列选择中做一个选择,对更新的状态做递归

2013-11-28 03:03:56 2663

原创 如何杀死Chrome进程并重启Chrome

总结一下,Chrome被杀死后就无法重启了,想要重启,必须先安装Unlocker,然后在C:\Users\\AppData\Local\Google选择unlock allLately my Google Chrome Browser started giving me lot of troubles. As I browse through pages, occasional

2013-11-28 02:41:50 11525

原创 Recursion 计算表达式的括号组合 @CareerCup

还没细看,先把代码放在这里package Recursion;import java.util.HashMap;/** * Given a boolean expression consisting of the symbols 0,1, &, /, and ^ , and a * desired boolean result value result, implement

2013-11-27 12:09:28 1547

原创 Recursion 叠箱子最高问题 @CareerCup

这类问题要多多画图package Recursion;import java.util.ArrayList;import java.util.HashMap;/** * You have a stack of n boxes, with widths wi, heights hi and depths di The * boxes cannot be rotated an

2013-11-27 11:40:41 2082

原创 Recursion 八皇后问题 @CareerCup

递归+回溯,不多说了。唯一要注意的是在每次记录一个可行的方案时,要复制一份数组,在Java中可以通过1 循环复制2 clone() 方法3 System.arraycopy() 方法这里按照书上,用了clone()方法!package Recursion;import java.util.ArrayList;/** * Write an algorithm t

2013-11-27 10:18:16 1264

原创 Recursion 硬币组合问题 @CareerCup

非常有意义的一道题,关键的一点要知道DFS是有顺序的,即在DFS中(5,1)和(1,5)是不一样的组合。所以对这道题我的第一种解法就重复算了多次,具体如图所示:当计算f(10)时,DFS给出的结果是9次,但实际上应该是4.去重的方法是多用一个变量(level)来限制条件。这样能保证在访问对于给定level只会深搜小于等于level的分支。同样参考了http://hawstein.c

2013-11-27 09:15:25 2256

原创 Recursion 图像软件中的“填充”函数 @CareerCup

搞清楚题意后就很简单了,用DFS暴搜即可package Recursion;/** * 原文:Implement the “paint fill” function that one might see on many image editing programs. That is, given a screen (represented by a 2-dimensiona

2013-11-27 05:44:18 1980

原创 Recursion n对括号的组合 @CareerCup

看不太习惯书上写的递归,觉得没有自己写的清晰。这道题唯一要满足的条件就是在任何时候,左括号数量一定要大等于右括号的数量。package Recursion;import java.util.HashSet;import java.util.Set;/** *Implement an algorithm to print all valid (e.g., properly

2013-11-27 05:20:32 1645

原创 Recursion 字符串的全排列 String Permutation @CareerCup

字符串全排列的题目,还是套用模板,同样要注意ret的size问题会变化。而且与上一题不同的是不光是要在ret后面添加进新的组合,而且还要移除前面用过的组合。类似一个队列。另外Java的substring中区间闭合情况是左闭右开 [ ) 所以想把一个字符串拆成两个区间就可以用这一句:for(int j=0; j<=tmp.length(); j++){ // substring

2013-11-27 05:03:11 2840

原创 Recursion 求所有子集 @CareerCup

这道题可以用递归和迭代两种方法来做。先说一下有收获的地方:在递归中,更经常的采用的是头递归,即调用先递归处理子问题,然后基于子问题的解再处理当前问题!并且这样还能减少stack中保存的内容。当然如果是比较简单的递归,即当前问题不依赖于子问题的解,如前面的那道findMagicIndex问题,就可以用尾递归。还有一点是,因为我在递归中ret值是不断往下传递的,所以

2013-11-27 01:53:30 2201 1

原创 Recursion 在数组中寻找神奇下标 @CareerCup

当数组里的元素没有重复时,因为数组已经是排序好的了,自然想到用二分法。如果数组里的元素有重复时,magic index可能出现在左侧也可能出现在右侧,这个画图举个例子就知道了。可以优化的是,无论是在左侧还是右侧,总有一些元素可以直接排除,从而缩短查找时间!package Recursion;import java.util.Arrays;import CtCILibra

2013-11-27 01:01:09 1889

原创 Recursion 二维空间里机器人向右或向下走的所有路径问题 @CareerCup

这道题学到了在做回溯时,先把点加入到path中,然后根据子情况来决定success这个变量,从而决定之前加入的点是否有必要的。如果子情况返回的是false,则这个点也没有必要加入到path中,就可以移除了。还有一个是,我的解答中每次函数只对当前点进行isFree的判断,官方答案中却对下一个节点进行判断。我还是觉得我的更直观一些。package Recursion;import

2013-11-26 14:17:18 1796

转载 荷塘月色

荷塘月色 作者: 朱自清 这几天心里颇不宁静。今晚在院子里坐着乘凉,忽然想起日日走过的荷塘,在这满月的光里,总该另有一番样子吧。月亮渐渐地升高了,墙外马路上孩子们的欢笑,已经听不见了;妻在屋里拍着闰儿,迷迷糊糊地哼着眠歌。我悄悄地披了大衫,带上门出去。 沿着荷塘,是一条曲折的小煤屑路。这是一条幽僻的路;白天也少人走,夜晚更加寂寞。荷塘四面,长着许多树,蓊蓊郁郁的。路的一旁,

2013-11-26 12:32:19 1304

原创 Recursion 爬楼梯问题 @CareerCup

开始CareerCup一书的刷题。。先从recursion这一章开始!我的解法:package Recursion;/** * A child is running up a staircase with n steps, and can hop either 1 step, 2 * steps, or 3 steps at a time. Implement a meth

2013-11-26 09:16:09 1981 2

转载 潘石屹早年工友:26年后他成了总裁我还在挑砖

图为:潘石屹这是一段多年前的回忆录,按说早已不算新闻。但这个与亿万富翁潘石屹有关的故事,却揭示了“富人之所以为富人,穷人之所以为穷人”的秘密。对广大创业者来说,其中的启示永不过时。讲述这段回忆录的是一个叫李勇的打工汉。26年前,他和潘石屹在深圳的南头边关相识,走深圳、闯海南,一起挑过砖,成了一对共患难的“苦友”。然而,如今的李勇仍然辗转各地打工,而潘石屹早已成为SOHO中国董事

2013-11-26 02:40:25 2130 1

原创 Convert Sorted List to Binary Search Tree 把有序链表转为BST@LeetCode

万能的递归法,注意到有一点比较巧的是,由于单链表都是单向的。所以这里我的查找区间设置为左闭右开!这样就避免了去找mid节点的前一个节点package Level4;import Utility.ListNode;import Utility.TreeNode;/** * Convert Sorted List to Binary Search Tree *

2013-11-25 10:27:52 5367 1

原创 Merge Two Sorted Lists 合并两个有序链表@LeetCode

之前做过这道题,没有用递归,做的非常痛苦。我就在想这是Level2的题怎么会怎么麻烦。。果然用了递归变得非常简洁!以后优先选择递归的解法(特别是链表和树的题目),如果不行再用迭代!package Level2;import Utility.ListNode;/** * Merge Two Sorted Lists * * Merge two sorted linke

2013-11-25 05:12:26 2729

原创 Reverse Nodes in k-Group k-group翻转链表@LeetCode

这种题目是要背下来的。。翻转单链表:ListNode dummy = new ListNode(0); dummy.next = head; ListNode pre = dummy; ListNode cur = head.next; ListNode last = head; while(cur != null){ las

2013-11-24 12:43:13 2251

原创 Simplify Path 简化文件路径@LeetCode

用栈来做,先把输入字符串以'/'为分隔符分来,如果遇到'.'或者空输入什么都不做。如果遇到'..'就弹栈。然后每从栈里退出一个元素就用'/'连接起来,注意顺序。发现Java里面的LinkedList实现了栈和队列的所有方法,而且还有重复的!值得注意的是,LinkedList中的pop()对应的是remove()或者removeHead()  即从链表头移除,而不是removeLast(

2013-11-24 11:38:22 5741 4

原创 Sudoku Solver 破解数独 @LeetCode 附DFS感想

典型DFS/递归/回溯/深搜题。对于DFS,说白了1) 什么时候返回?在本题中,1.当x>8或y>8 表示已经遍历完所有的格子,因此成功完成,返回true。2.当下一个搜索(子搜索)返回true,说明已经找到,返回true。  3.如果测试过本轮的所有可能解,但无一是对的,说明无解,返回false。  4.如果当前空格不是空格,则改变x,y坐标后,继续下一个空格的尝试2)DFS就是针对本轮

2013-11-24 11:00:55 4706 6

转载 M,BB面试+职业求教

http://www.mitbbs.com/article_t/JobHunting/32328493.html 发信人: sausages (smuggler), 信区: JobHunting标  题: M,BB面试+职业求教发信站: BBS 未名空间站 (Sat Feb 16 10:21:22 2013, 美东)传统工科,今年硕士毕业。去年开始有做码工的想法,在本版潜水

2013-11-24 09:22:57 1549

原创 Construct Binary Tree from Inorder and Postorder Traversal 由中序和后序重建二叉树@LeetCode

同上一题,这一题是由inorder和postorder来确定树,对于postorder,root要从尾部开始找package Level4;import Utility.TreeNode;/** * Construct Binary Tree from Inorder and Postorder Traversal * * Given inorder and

2013-11-24 08:46:47 1692

转载 记毕业季的求职经历 remlostime

http://www.cnblogs.com/remlostime/p/3401015.htmlAccept的公司:Facebook, DeNA, SAP, Intel, ARMFail的公司:阿里巴巴,腾讯,百度,Google,微软,平安科技,豆瓣,雅虎,Amazon,NVIDIA,EMC,VMware,还有各种说不上名字的小公司今年(确切的说是从去年暑假开始)的

2013-11-24 08:06:30 1632

原创 Construct Binary Tree from Preorder and Inorder Traversal 从先序和中序重建二叉树@LeetCode

经典的题目,而且在实际中也有着用途,比如如何把一个二叉树序列化后通过网络传给另一台机器,我们就可以把二叉树以preorder和inorder的方式变成string传给另一台机器,另一台机器再重建二叉树。package Level4;import Utility.TreeNode;/** * * Construct Binary Tree from Preorder and

2013-11-24 06:22:51 2999 2

原创 Decode Ways 把字符串解码成数字组合@LeetCode

做这道题还是有很多收获的:1.为了避免麻烦,开数组时可以开大一些,如int[] ways = new int[len+10];2. 这道题实际上是和计算要几步走完台阶的那道题本质是一样的。同样要用动态规划3. 在拆分时,之前我一直在纠结如何处理0的为题,特别是对于输入是01,101,1001这样的数。后来才发现可以用10来判断,而不用对0去判断!具体过程:要求当前的index为

2013-11-24 05:05:21 3230 1

原创 Divide Two Integers 两数相除@LeetCode

思路清晰,就是二倍法。直接用除数去一个一个加,直到被除数被超过的话,会超时。解决办法每次将被除数增加1倍,同时将count也增加一倍,如果超过了被除数,那么用被除数减去当前和再继续本操作。因为一个很大的数经过对数处理后都能在可接受的大小内。比如Integer.MAX_VALUE 的log后也不过31.另外这道题很恶心的一点是在边界的处理,因为我们知道最大允许的负数的绝对值比最大允许的正

2013-11-23 14:27:23 4006 1

原创 一道DFS的小题: 部分和问题

部分和问题  (挑战程序设计竞赛)给定整数 a 1 、a 2 、…、a n ,判断是否可以从中选出若干数,使它们的和恰好为 k。 输入 n=4 a={1,2,4,7} k=13 输出 Yes (13 = 2 + 4 + 7) 输入 n=4 a={1,2,4,7} k=15 输出 No // 输入 in

2013-11-23 05:37:40 5588 5

原创 Binary Tree Maximum Path Sum 二叉树最大路径和 @LeetCode

很有难度的一道题,主要是最大和的可能性很多,不知道如何分情况。关键点1:分析:http://fisherlei.blogspot.com/2013/01/leetcode-binary-tree-maximum-path-sum.htmlFor each node like following, there should be four ways existing for max pa

2013-11-23 01:05:35 14644

原创 Merge Intervals 合并区间@LeetCode

采用的是和Insert Interval一样的思想,只不过最开头要先排序一下,用到了java的Collections.sort(List list, Comparator c)自己实现了一个Comparator的compare方法package Level4;import java.util.ArrayList;import java.util.Collections;im

2013-11-22 12:42:36 4926 3

原创 ZigZag Conversion 把一个字符串转为zigzag的表示形式@LeetCode

我发现有一类题目,比如这一道题,都是属于思路好想,但是很容易编程有bug的题目。要特别细心处理corner case。。。package Level3;import java.util.Arrays;/** * ZigZag Conversion * * The string "PAYPALISHIRING" is written in a zigzag patte

2013-11-22 12:05:45 3944

原创 Copy List with Random Pointer 复制有随机指针的链表@LeetCode

1 先画好图2 注意可能形成环的情况,因此必须拆成3个循环来做代码是按照 http://www.cnblogs.com/lautsie/p/3259724.html 的图来写的一个单链表,其中除了next指针外,还有一个random指针,指向链表中的任意某个元素。如何复制这样一个链表呢?通过next来复制一条链是很容易的,问题的难点在于如何恰当地设置新链表中的r

2013-11-22 10:34:18 6340

原创 Insert Interval 插入区间@LeetCode

动态合并的问题:通过遍历intervals,和newInterval对比:1 如果比newInterval小:直接加入新集合2 如果有overlap,动态改变newInterval为新的区间,继续合并3 如果比newInterval大:加入newInterval到新集合,然后把newInterval更新为当前对象之前在做第三步时,不懂得用动态改变newInterval的

2013-11-22 07:46:27 2652

空空如也

空空如也

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

TA关注的人

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