![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
剑指offer
TimelessQQ
这个作者很懒,什么都没留下…
展开
-
剑指offer--动态规划与贪婪
题目描述给你一根长度为n的绳子,请把绳子剪成整数长的m段(m、n都是整数,n>1并且m>1),每段绳子的长度记为k[0],k[1],…,k[m]。请问k[0]xk[1]x…xk[m]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。输入描述:输入一个数n,意义见题面。(2 <= n <= 60)输出描述...原创 2020-04-08 11:11:20 · 83 阅读 · 0 评论 -
剑指offer--回溯法
题目描述请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。例如矩阵中包含一条字符串"bcced"的路径,但是矩阵中不包含"abcb"路径,因为字符串的第一个字符b占据了矩阵中的第一行第二个格子之后,路径不能再次进入...原创 2020-04-08 11:05:41 · 134 阅读 · 0 评论 -
剑指offer--综合
题目描述将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0输入描述:输入一个字符串,包括数字字母符号,可以为空输出描述:如果是合法的数值表达则返回该数字,否则返回0# -*- coding:utf-8 -*-class Solution: def StrToInt(self, s): # write ...原创 2020-04-08 10:34:19 · 74 阅读 · 0 评论 -
剑指offer--发散思维能力
题目描述求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。class Solution: def Sum_Solution(self, n): return n and (n+self.Sum_Solution(n-1))题目描述写一个函数,求两个整数之和,要求在函数体内不得使...原创 2020-04-07 22:24:05 · 85 阅读 · 0 评论 -
剑指offer--抽象建模能力
题目描述LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张_)…他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子…LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13。上面的5张...原创 2020-04-07 20:26:49 · 103 阅读 · 0 评论 -
剑指offer--知识迁移能力
题目描述统计一个数字在排序数组中出现的次数。# -*- coding:utf-8 -*-class Solution: def GetNumberOfK(self, data, k): # write code here return self.BiSearch(data,k+0.5) - self.BiSearch(data,k-0.5) ...原创 2020-04-07 18:06:25 · 79 阅读 · 0 评论 -
剑指offer--时间空间效率的平衡
题目描述把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。# -*- coding:utf-8 -*-class Solution: def GetUglyNumber_Solution(self, index): # write cod...原创 2020-04-07 11:34:35 · 86 阅读 · 0 评论 -
剑指offer--时间效率
题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。class Solution: def __init__(self): self.dict1 = {} def MoreThanHalfNum_S...原创 2020-04-07 09:58:51 · 79 阅读 · 0 评论 -
剑指offer--分解让复杂问题简单
题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)# -*- coding:utf-8 -*-# class RandomListNode:# def __init__(self, x):# s...原创 2020-04-06 20:53:30 · 85 阅读 · 0 评论 -
剑指offer--举例让抽象具体化
题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。注意:保证测试中不会当栈为空的时候,对栈调用pop()或者min()或者top()方法。# -*- coding:utf-8 -*-class Solution: def __init__(self): self.stack = [] sel...原创 2020-04-05 09:22:36 · 95 阅读 · 0 评论 -
剑指offer--顺时针打印矩阵
题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.翻转矩阵:class Solution: # matrix类型为二维列表,需要返回列表 def pr...原创 2020-04-04 21:26:20 · 82 阅读 · 0 评论 -
剑指offer--二叉树的镜像
题目描述操作给定的二叉树,将其变换为源二叉树的镜像。# -*- coding:utf-8 -*-# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution: # 返回...原创 2020-04-04 20:17:35 · 69 阅读 · 0 评论 -
剑指offer--代码的鲁棒性
题目描述输入一个链表,输出该链表中倒数第k个结点。放入list后查询:# -*- coding:utf-8 -*-# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: def FindKthToTail(sel...原创 2020-04-04 20:06:20 · 81 阅读 · 0 评论 -
剑指offer--代码的完整性
题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。保证base和exponent不同时为0# -*- coding:utf-8 -*-class Solution: def Power(self, base, exponent): # write code here ans = 1...原创 2020-04-04 11:49:01 · 87 阅读 · 0 评论 -
剑指offer--位运算
题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。# -*- coding:utf-8 -*-class Solution: def NumberOf1(self, n): # write code here return sum([(n>>i&1) for i in range(0,32)])...原创 2020-04-03 10:55:24 · 126 阅读 · 0 评论 -
剑指offer--递归与循环
题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39# -*- coding:utf-8 -*-class Solution: def Fibonacci(self, n): # write code here if n == 0: return 0 ...原创 2020-04-02 23:10:48 · 81 阅读 · 0 评论 -
剑指offer--排序与查找
题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。# -*- coding:utf-8 -*-class Solution: def minNumbe...原创 2020-04-02 20:00:02 · 86 阅读 · 0 评论 -
剑指offer--栈与队列
题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。# -*- coding:utf-8 -*-class Solution: def __init__(self): self.stack1 = [] self.stack2 = [] def push(self, node): ...原创 2020-04-02 16:12:25 · 80 阅读 · 0 评论 -
剑指offer--树
题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。# -*- coding:utf-8 -*-# class TreeNode:# def __init__(self, x):# ...原创 2020-04-01 22:33:42 · 84 阅读 · 0 评论 -
剑指offer--链表
题目描述输入一个链表,按链表从尾到头的顺序返回一个ArrayList。# -*- coding:utf-8 -*-# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: # 返回从尾部到头部的列表值序列,例如[1,...原创 2020-04-01 21:37:32 · 61 阅读 · 0 评论 -
剑指offer--字符串
题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。# -*- coding:utf-8 -*-class Solution: # s 源字符串 def replaceSpace(self, s): # write code here ...原创 2020-04-01 20:51:50 · 76 阅读 · 0 评论 -
剑指offer--数组
题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。import numpy as npclass Solution: # array 二维列表 def Find(self, target, array): # w...原创 2020-04-01 16:35:16 · 79 阅读 · 0 评论