剑指offer(python)
楚琪仔
学习
展开
-
剑指offer:题目3(数组中重复的数字)--python
题目详情在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。方法一:# -*- coding:utf-8 -*-class Solution: # 这里要特别注意~找到任意重复的一...原创 2018-06-26 11:22:22 · 554 阅读 · 0 评论 -
剑指offer 面试题22(链表中倒数第K个节点) python
题目描述输入一个链表,输出该链表中倒数第k个结点。运行时间:28ms占用内存:5728k方法一:# -*- coding:utf-8 -*-# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: ...原创 2018-08-16 13:35:43 · 527 阅读 · 1 评论 -
剑指offer 面试题18(删除链表中重复的结点) python
题目描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 思路看备注:# -*- coding:utf-8 -*-# class ListNode:# def __init__(sel...原创 2018-08-15 22:37:58 · 1223 阅读 · 0 评论 -
剑指offer 面试题17(打印从1到最大的n位数) python
题目:输入数字n,按顺序打印从1到最大的n位的十进制数。比如输入3,就打出1,2,3...999 代码(一):# -*- coding:utf-8 -*-class Solution: def Power(self, num): # write code here if num<= 0: return 0 ...原创 2018-08-15 11:02:26 · 1819 阅读 · 2 评论 -
剑指offer 面试题16(数值的整数次方) python
题目:给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 代码(一):# -*- coding:utf-8 -*-class Solution: def Power(self, base, exponent): # write code here return base**ex...原创 2018-08-01 20:02:06 · 423 阅读 · 0 评论 -
剑指offer 面试题15(二进制中1的个数) python
题目:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 代码(一):# -*- coding:utf-8 -*-class Solution: def NumberOf1(self, n): # write code here if n < 0 : n = n & 0xffffff...原创 2018-08-01 17:54:57 · 637 阅读 · 0 评论 -
剑指offer 面试题14(剪绳子) python
题目:给你一根长度为n的绳子,请把绳子剪成m段 (m和n都是整数,n>1并且m>1)每段绳子的长度记为k[0],k[1],...,k[m].请问k[0]*k[1]*...*k[m]可能的最大乘积是多少?例如,当绳子的长度为8时,我们把它剪成长度分别为2,3,3的三段,此时得到的最大乘积是18. 代码(一):# -*- coding:utf-8 -*-class So...原创 2018-07-25 23:14:18 · 2382 阅读 · 1 评论 -
剑指offer 面试题13(机器人的运动范围) python
题目:地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子? 代码(一):# -*- coding...原创 2018-07-25 21:54:54 · 345 阅读 · 0 评论 -
剑指offer 面试题12(矩阵中的路径) python
题目:请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则之后不能再次进入这个格子。 例如 a b c e s f c s a d e e 这样的3 X 4 矩阵中包含一条字符串"bcced"的路径,但是矩阵中不包含"abcb"路径,因为字符...原创 2018-07-24 22:06:09 · 912 阅读 · 0 评论 -
剑指offer 面试题11 (旋转数组的最小数字) python
题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 代码(一):# -*- coding:utf-8 -*-class Solution: ...原创 2018-07-18 20:10:39 · 266 阅读 · 0 评论 -
剑指offer 面试题10 (斐波那契数列) python
题目:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39 代码(1):# -*- coding:utf-8 -*-class Solution: def Fibonacci(self, n): # write code here if n == 1: ...原创 2018-07-17 15:51:55 · 264 阅读 · 0 评论 -
剑指offer 面试题9 (用两个栈实现队列) python
题目:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 代码():# -*- coding:utf-8 -*-class Solution: def __init__(self): self.stack_A = [] self.stack_B = [] def push(self, node...原创 2018-07-17 11:59:18 · 215 阅读 · 0 评论 -
剑指offer 面试题8 (二叉树的下一个节点) python
题目:给定一颗二叉树和其中的一个节点,如何找出中序遍历序列的一个节点?书中的节点除了有两个分别指向左、右子节点指针,还有一个指向父节点的指针。 代码:# -*- coding:utf-8 -*-# class TreeLinkNode:# def __init__(self, x):# self.val = x# self.lef...原创 2018-07-17 09:27:20 · 521 阅读 · 0 评论 -
剑指offer 面试题7 (重建二叉树) python
题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 代码(递归):# -*- coding:utf-8 -*-# class TreeNode:# def __init__(sel...原创 2018-07-16 21:24:57 · 461 阅读 · 0 评论 -
剑指offer 面试题6 (从尾到头打印链表) python
题目描述请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 方法一:# -*- coding:utf-8 -*-class Solution: # s 源字符串 def replaceSpace(self, s): # write code here s_...原创 2018-06-26 11:29:16 · 141 阅读 · 0 评论 -
剑指offer 面试题5 (替换空格) python
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 方法一:# -*- coding:utf-8 -*-class Solution: # array 二维列表 def Find(self, target, array): # write code here...原创 2018-06-26 11:28:14 · 331 阅读 · 0 评论 -
剑指offer 面试题4 (二维数组中的查找)python
题目详情在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。1 2 8 92 4 9 124 7 10 136 8 11 15方法一:# -*- coding:utf-8 -*-clas...原创 2018-06-26 11:27:21 · 241 阅读 · 0 评论 -
剑指offer 面试题21(调整该数组中数字的顺序使奇数在偶数前) python
题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 方法一:运行时间:30ms占用内存:5660k# -*- coding:utf-8 -*-class Solution: def reOrderArray(self, a...原创 2018-08-16 14:53:04 · 282 阅读 · 0 评论