![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
剑指offer限时促销
flannery023
这个作者很懒,什么都没留下…
展开
-
二维数组的查找(python)
题目描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思路:因为二维数组横向和竖向都是递增的,自然,array[0][0]最小,array[-1][-1]最大,于是想到可以直接比较每组最后一个元素,这样如果这个数大于target,那么target就会在这个数左边,就将col左移...原创 2018-07-01 21:52:11 · 751 阅读 · 0 评论 -
重建二叉树(Python)
题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。思路:二叉树的遍历是一个典型的递归问题,如果题目没有特殊要求,递归必然是最简单的方法,不要问为什么,记住就好了。首先前序总是读取根节点,我们依照这个将中序分...原创 2018-07-02 15:36:12 · 3828 阅读 · 0 评论 -
旋转数组的最小数字(Python)
题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。思路:遇到这种半有序数组,最简单的查找就是二分法查找,想到这个不难,但就是需要抠一些条件的细节。代码:class ...原创 2018-07-03 11:41:53 · 700 阅读 · 0 评论 -
非递归的斐波那契数列(Python)
题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。n<=39思路:斐波那契数列最典型最简单的方法当然是递归了,但是如果面试碰到这道题用递归做,offer是拿不到的。我们知道斐波那契数列永远只跟上两个数有关,那么很自然的想到,我就保留上两个的数值就好。代码:class Solution: def Fibonacci(self, n): i...原创 2018-07-03 18:55:37 · 2666 阅读 · 0 评论 -
非递归的青蛙跳台阶问题(Python)
题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。思路:青蛙跳台阶是和斐波那契数列一样典型的问题,可参考我上一篇博文,这也是一个典型的当前值只和上两个值有关的问题,step(n=1)=1 ; step(n=2)=2 ; step(n=3) =step(n=1)+step(n=2),所以同样的,只要保留上两个的值就好啦,offer就拿到啦(并没有)。...原创 2018-07-04 11:01:06 · 1679 阅读 · 0 评论 -
调整数组顺序使奇数位于偶数前面(python)
题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。思路:两个指针:even和odd,even从数组前往后找,找到第一个偶数,odd从这个偶数之后开始找,定位第一个奇数,将这个奇数插入到第一个偶数前面,这样才能保持相对位置不变。(注意:每一个循环都要判断指针是...原创 2018-07-17 14:59:11 · 1792 阅读 · 0 评论 -
变态青蛙跳问题(递归法)
题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。思路:上一篇说了典型的青蛙跳问题,马上就跟着一个进阶的变态青蛙跳问题了,这里涉及一个简单的数学推导。f(0) = 1f(1) = 1f(2) = f(2-1)+f(2-1) #跳一步回到f(1)问题,跳两步回到f(0)问题f(3) = f(3-1)+f(3-2)+f(3-3)...原创 2018-07-04 17:48:36 · 759 阅读 · 2 评论 -
反转列表(Python)
题目描述:输入一个链表,反转链表后,输出新链表的表头。思路:不构造新的链表,原地反转。需要指针个数为4:1、保留当前节点的下一节点防止链表断裂 , 2、指向当前节点,3、指向当前节点的下一节点,4、指向当前节点的前一节点代码:Class solution: def ReverseList(self, pHead): pre = None ...原创 2018-07-17 18:06:20 · 830 阅读 · 0 评论