剑指offer笔记
biandi9300
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
重做剑指offer(三)——从头到尾打印链表
剑指offer(三)——从尾到头打印链表题目描述:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。分析:题目就一句话,一行都不到,理解起来应该没什么难度,但是有一点是需要注意的,题目要求是从尾到头打印链表,不是从头到尾打印链表。说来惭愧,我第一次看题就看岔了。而对于一般的单链表来说,只能顺序操作,无法逆序。那如果硬是要逆序输出怎么办,这时候栈大喊一声“我来!”,利用栈的先进后出...原创 2019-04-18 19:20:28 · 473 阅读 · 0 评论 -
重做简直offer(五)——用两个栈实现队列
重做简直offer(五)——用两个栈实现队列题目描述:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。分析:首先我们党的知识储备中必须要有栈和队列的概念,栈是一种先进后出的数据结构,队列是一种先进先出的数据结构,push是压入操作,也就是把数据(或元素)添加进栈或队列,pop可以理解为取出或抛出操作,就是将数据(或元素)从栈或者队列中取出(注意,取出后栈或队...原创 2019-04-15 11:57:22 · 164 阅读 · 0 评论 -
重做剑指offer(九)——变态跳台阶
重做剑指offer(九)——变态跳台阶题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。分析:这题与上题同理,我们也可以用同样的思路来解决,设n阶台阶有f(n)种跳法,若第一次跳1阶,那后面还有f(n-1)种跳法,若第一次跳2阶,后面还有f(n-2)种跳法,……若第一次跳n-1阶,则还有f(1)种跳法,若第一次跳n阶,则还有...原创 2019-04-17 19:02:06 · 137 阅读 · 0 评论 -
重做剑指offer(八)——跳台阶
重做剑指offer(八)——跳台阶题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。分析:拿到题目一看,诶?数学题!好说好说,还有我做不出来的数学题吗?(事实证明,后来被打脸无数次,快自闭了都,但不是这题,要不然我真的要自闭了)那我们来看看题吧,n阶台阶,每次只能跳1阶或2阶。题目没啥好解释的,看思路:设n阶台阶有...原创 2019-04-17 17:04:01 · 143 阅读 · 0 评论 -
重做剑指offer(四)——重建二叉树
重做剑指offer(四)——重建二叉树题目描述:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。分析:改题是给出二叉树的前序遍历序列和中序遍历序列,编写函数实现重建二叉树的功能。既然如此,我们就必须先要知道啥...原创 2019-04-14 22:07:46 · 155 阅读 · 0 评论 -
重做剑指offer(七)——斐波那契数列
重做剑指offer(七)——斐波那契数列题目描述:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39分析:easy吗?需要思考吗?提笔就来好吧public class Solution { public int Fibonacci(int n) { if(n == 0) re...原创 2019-04-17 16:06:42 · 185 阅读 · 0 评论 -
重做剑指offer(六)——旋转数组的最小数字
重做剑指offer(六)——旋转数组的最小数字题目描述:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。分析:...原创 2019-04-16 22:13:00 · 147 阅读 · 0 评论 -
重做剑指offer(二)——替换空格
重做剑指offer(二)——替换空格题目描述:请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。分析:本题比较简单,很容易可以想到思路。我们从头开始扫描字符串,当遇到空格时,就将空格替换为%20,并且后面的字符全都往右移动两个单位。这样的解法毫无疑问是正确的,但是细想一下,对于一个长度为...原创 2019-04-09 16:49:47 · 142 阅读 · 0 评论 -
重做剑指offer(一)——二维数组中的查找
重做剑指offer(一)——二维数组中的查找题目描述:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。(书中第44页)分析:设这个整数为target,由于该二维数组是左右递增和上下递增的,故可以先在第一行从左到右进行搜索,先在第一行中从右往左找到小于该...原创 2019-04-08 15:47:02 · 161 阅读 · 0 评论 -
重做剑指offer(序)
重做剑指offer(序)自从大佬告诉我,要想进大厂,前期先把剑指offer给刷烂咯!于是,我便夜以继日地刷刷刷,虽天资愚钝,但是在牛客网诸位的大神的答案启发下,终于也是快刷完第一遍了,于是信誓旦旦跑去做华为机试题,无奈终究还是败下阵来,捶胸顿足,哭天抢地,恨自己不成钢。于是又跑去询问大佬,才得知自己在刷题过程中缺了最重要的一环——总结。之前的努力刷题算是白费了精力,特在此浪子回头,二刷剑指off...原创 2019-04-08 10:02:04 · 171 阅读 · 0 评论 -
剑指offer(十)——矩形覆盖
剑指offer(十)——矩形覆盖题目描述:我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?分析:针对这一题,我的思路是这样,小矩形可以横着放也可以竖着放,如果小矩形竖着放,那刚好可以放满一列,如果横着放,那需要两个小矩形横着放,也可以刚好放满两列,那我们可以这样将问题转化为:**有一个1*2的矩阵,每次可以放一个矩...原创 2019-04-17 22:18:56 · 175 阅读 · 0 评论
分享