剑指offer Python版
文章平均质量分 51
single-coder
这个作者很懒,什么都没留下…
展开
-
剑指offer Python版 - 数组中重复的数字
题目描述在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。方法1:先把输入的数组排序,再从头到尾扫描排序后的数组,如果相邻的两个元素相等,则存在重复数字。时间复杂度O(...原创 2018-04-08 19:57:32 · 960 阅读 · 0 评论 -
剑指offer Python版 - 二叉树的下一个结点
题目描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 分析二叉树的下一个节点,一共有以下情况: 1.二叉树为空,则返回空; 2.节点右子树存在,则设置一个指针从该节点的右子树出发,一直沿着指向左子结点的指针找到的叶子节点即为下一个节点; 3.节点不是根节点。如果该节点是其父节点的左子树,则返回父...原创 2018-04-09 16:26:45 · 214 阅读 · 0 评论 -
剑指offer Python版 - 用两个栈实现队列
题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。思路:定义两个栈stack1, stack2,当push元素时,将其插入进stack1,当pop元素时,若stack2为空,则将stack1中的元素依次弹出,并插入进stack2中,此时stack2中栈顶的元素是最早插入进stack1的,符合队列“先进先出”的特点,弹出stack2栈顶的元素。若stack2...原创 2018-04-09 16:42:33 · 182 阅读 · 0 评论 -
剑指offer Python版 - 斐波那契数列
题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。n<=39方法1:循环。# -*- coding:utf-8 -*- class Solution: def Fibonacci(self, n): # write code here if n <= 2: return [0, 1, 1...原创 2018-04-11 20:36:37 · 427 阅读 · 0 评论 -
剑指offer Python版 - 旋转数组的最小数字
题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。方法1:使用Python内建函数min(),直接寻找最小元素。# -*- coding:utf-8 -*- cl...原创 2018-04-11 21:13:25 · 152 阅读 · 0 评论 -
剑指offer - 二维数组中的查找
题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。方法1:暴力破解,遍历所有元素,比较得知是否含有目标元素,若有,则返回True,若不存在则在最后返回False。时间复杂度 n * n# -*- coding:utf-8 -*- class Solution: # ...原创 2018-04-04 23:37:50 · 322 阅读 · 0 评论 -
剑指offer Python版 - 替换空格
题目描述请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。问题1:替换字符串,是在原来的字符串上做替换,还是可以重新定义一个字符串做替换:问题2:从前往后替换和从后往前替换一样吗?方法1:从左往右遍历元素,若当前元素为空格,则插入“%20”, 并将字符串长度增加3. 时间复杂度O(n * n)....原创 2018-04-05 20:05:00 · 313 阅读 · 0 评论 -
剑指offer - 从尾到头打印链表
题目描述输入一个链表,从尾到头打印链表每个节点的值。链表最基础的题目,没有太多解释的。注意是从尾到头打印。# -*- coding:utf-8 -*- # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: # 返回从尾...原创 2018-04-05 20:11:06 · 91 阅读 · 0 评论 -
剑指offer - 重建二叉树
题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。每颗子树的根节点肯定是pre子数组的首元素,所以每次新建一个子树的根节点。每次将左右两颗子树当成新的子树进行处理,中序的左右子树索引很好找,前序的开始结束索...原创 2018-04-05 21:07:11 · 156 阅读 · 0 评论