剑指offer
p744174529
这个作者很懒,什么都没留下…
展开
-
剑指offer(java代码)——第一个只出现一次的字符
题目描述:在一个字符串(1看到这个题,第一个反应可能是按顺序遍历字符串,对字符串中每一个字符,都去看它的后面有没有和它一样的字符。但是这种方法太费时间,所以要换一种思路。如果是建立一个HashMap,把key设为字符串中每个字符,value设为每个字符出现的次数,那么我们只需要对字符串进行一次遍历,用字符串中每个字符作为key,去找value为1的那个字符就可以了。原创 2017-04-28 09:23:24 · 237 阅读 · 0 评论 -
剑指offer(java代码)——从尾到头打印链表
题目表述:输入一个链表,从尾到头打印链表每个节点的值。这个题目可以利用Stack的特点。Stack是先入后出,可以利用Stack的pop方法从尾部弹出元素,把弹出的元素放入一个数组中,再将这个数组从头到尾输出。原创 2017-05-06 19:30:20 · 235 阅读 · 0 评论 -
剑指offer(java代码)——用两个栈实现队列
题目描述:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。首先我们知道,栈的特点是先入后出,而队列的特点是先入先出。假设有abc这三个数,对于栈来说,它的入栈顺序是abc,而出栈顺序是cba,而对于队列来说,它的入列和出列顺序都是abc。那么如果我们用对abc进行出栈操作,把出栈的元素按顺序放入另一个栈(记作栈2),那么栈2的入栈顺序就是cba,那么就可原创 2017-05-04 18:31:16 · 266 阅读 · 0 评论 -
剑指offer(java代码)——替换空格
题目描述:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。这道题的步骤大致是这样的:1.计算字符串中空格的数量。2.计算替换后字符串的长度。3.进行替换原创 2017-05-04 16:20:03 · 305 阅读 · 0 评论 -
剑指offer(java代码)——矩形覆盖
题目描述:我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?还是一个斐波那契数列问题,直接放代码:原创 2017-05-03 19:01:24 · 240 阅读 · 0 评论 -
剑指offer(java代码)——二维数组中的查找
题目描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。常规思路肯定就是按照顺序遍历二维数组,但是这样时间复杂度太高。这个问题其实如果大学里学过运筹学的话解决起来特别简单。我们看这个二维数组有什么特点。这个数组每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序原创 2017-05-02 12:40:13 · 195 阅读 · 0 评论 -
剑指offer(java代码)——变态跳台阶
题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。这个题和之前的跳台阶问题很相似,主要解决点在于找出规律和用循环代替递归。原创 2017-04-28 13:06:40 · 492 阅读 · 0 评论 -
剑指offer(java代码)——斐波那契数列
今天争取每天更新一篇剑指offer的算法题,算是做笔记,也算是督促自己学习,今天先做一个最简单的斐波那契数列。斐波那契题目大家都很熟悉了,最基本的方法是用递归。但是递归意味着要消耗大量的空间,所以这里尝试用循环的方式去解决。先直接放代码这里代码的重点就是用while循环去做相当与递归的操作。直接拿斐波那契数列的前几项举例说明:0,1,1,2,3,5一开始,我们用num1模拟原创 2017-04-27 20:02:03 · 258 阅读 · 0 评论 -
剑指offer(java代码)——和为S的两个数字
题目描述:输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。 这道题友好就友好在给的是一个递增数组。对于递增数组,我们可以去计算数组第一个数字和数组最后一个数字的和,如果和小于S,那么我们就去计算第二个数与最后一个数的和。如果大于S,我们就计算数组第一个数与倒数第二个数的和。这样做的一个好处是,我们找到的第一个符原创 2017-04-28 10:43:46 · 238 阅读 · 0 评论 -
剑指offer(java代码)——青蛙跳台阶
题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。看看这道题,是不是有种很熟悉的感觉,没错,之前出现的斐波那契数列又来了。原创 2017-04-27 21:26:40 · 390 阅读 · 0 评论