剑指offer
小颜学人工智能
越努力,越幸运❤️
展开
-
剑指offer:33-36
第33题:丑数 题目说明:把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 程序: 丑数可以分解成:2 ^ x * 3 ^ y * 4 ^ z 1*(2, 3, 5)=2, 3, 5; 2*(2, 3, 5)=4, 6, 10; 3*(2, 3, 5)=6, 9, ...原创 2020-03-05 16:53:38 · 90 阅读 · 0 评论 -
剑指offer:29-32
第29题:最小的k个数 题目说明:输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。 程序: # -*- coding:utf-8 -*- class Solution: def GetLeastNumbers_Solution(self, tinput, k): # write code here ...原创 2020-03-03 19:43:23 · 91 阅读 · 0 评论 -
剑指offer:25-28_字典
第25题:复杂链表的复制 题目说明:输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) 程序: 分三步: 第一步:复制结点; 第二步:复制随机指针; 第三步:分割链表。 # -*- coding:utf-8 -*- # class R...原创 2020-02-29 17:39:55 · 131 阅读 · 0 评论 -
剑指offer:21-24
第21题:栈的压入、弹出序列 题目说明:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的) 程序: 设置辅助栈,将压入序列依次压入辅助栈,每次压入后...原创 2020-02-28 17:53:43 · 118 阅读 · 0 评论 -
剑指offer:17-20
第17题:树的子结构 题目说明:输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 程序: 第一步:遍历树A,找到与树B根结点一样的结点R,找到则进行第二步,否则进行递归查找; 第二步:判断树A中以R为根结点的子树是否和树B具有相同结构,使用递归一次判断当前结点和左右子树,注意边界退出条件和可能报错情况。 # -*- coding:utf-8 -*- # c...原创 2020-02-27 21:44:30 · 100 阅读 · 0 评论 -
剑指offer:13-16题_切片
第13题:调整数组顺序使奇数位于偶数前面 题目说明:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 程序: # -*- coding:utf-8 -*- class Solution: def reOrderArray(self, array): # w...原创 2020-02-24 21:18:34 · 147 阅读 · 0 评论 -
剑指0ffer:9-12题
第9题:变态跳台阶 题目说明:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 程序: 假设青蛙跳n级台阶有f(n)种跳法,那么青蛙要么先跳1级,要么先跳2级,…,要么直接跳n级;跳1级后有f(n-1)种跳法,跳2级后有f(n-2)种跳法,…,直接跳n级有1种跳法,总之: f(n) = f(n-1) + f(n-2) + … + f(n...原创 2020-02-23 15:52:00 · 126 阅读 · 0 评论 -
剑指offer:5-8题
第5题:用两个栈实现队列 题目说明:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 程序: 栈和队列都是操作受限的线性表。 栈:限定仅在表尾进行插入或删除的线性表(先进后出); 队列:允许在线性表的一端进行插入,在另一端进行删除(先进先出)。 在python中,栈和队列都是用列表实现的。将列表的结尾作为栈顶进行插入或删除;将列表的开头作为队尾进行插入,将列表的...原创 2020-02-21 20:23:52 · 131 阅读 · 0 评论 -
剑指offer:1-4题_string_list
剑指offer刷题总结: 第1题:二维数组的查找 题目说明:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 程序: 1.循环遍历每一个整数,判断是否等于给定的整数,如果相等则输出存在,否则不存在。 # -*- coding:utf-8 -*- class...原创 2020-02-19 21:08:44 · 264 阅读 · 0 评论