剑指offer
冷的太明显
这个作者很懒,什么都没留下…
展开
-
剑指offer 二进制中1的个数 @python
剑指offer 二进制中1的个数 @python题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。Solution看一个简单的例子,整数12的二进制表示为1100,将其减一变为1011,将得到的结果和原树进行按位与,得到1000,所以发现规律没有?把一个整数减去1之后再和原来的整数做按位与,得到的结果相当于是把整数的二进制表示中最右边的一个1变...原创 2018-03-22 14:23:16 · 404 阅读 · 1 评论 -
剑指offer 矩阵中的路径 @python
剑指offer 矩阵中的路径 @python题目描述请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如 a b c e s f c s a d e e 矩阵中包含一条字符串”bcced”的路径,但是矩阵中不包含”原创 2018-03-22 09:52:01 · 2245 阅读 · 4 评论 -
剑指offer 旋转数组的最小数字 @python
剑指offer 旋转数组的最小数字 @python题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。Solution二分查找,当中间值大于左指针的值时,说明最小值原创 2018-03-21 22:04:29 · 1883 阅读 · 1 评论 -
剑指offer 矩形覆盖 @python
剑指offer 矩形覆盖 @python题目描述我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?Solution假设是一个2*8的大矩形有f(8)f(8)种放的方法,当第一个竖着放,那后面就有f(7)f(7)种放的方法;当第一份横着放,而下面那个空间也必须横着放,剩下的就有f(6)f(6)种放的方法,那就总共是f(8原创 2018-03-21 22:16:12 · 234 阅读 · 0 评论 -
剑指offer 斐波那契数列 @python
剑指offer 斐波那契数列 @python题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。n<=39Solution求斐波那契数列有3中方法:递归循环使用递归方法,由于有较多重复计算,时间复杂度过高,可以使用循环自下而上的求解。递归# -*- coding: utf-8 -*-"""Created on Wed Mar 21 20:13:53 20原创 2018-03-21 21:07:16 · 325 阅读 · 0 评论 -
剑指offer 用两个栈实现队列 @python
剑指offer 用两个栈实现队列 @python题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。Solution用一个栈实现进队,另一个栈实现出队 需要进队的时候把元素压如stack1中,需要出队的时候把stack1中的元素全部弹出至stack2中从stack2中出队,即可实现先进先出# -*- cod...原创 2018-03-21 20:01:57 · 274 阅读 · 0 评论 -
剑指offer 重建二叉树 @python
剑指offer 重建二叉树 @python题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。Solution首先根据前序遍历序列的第一个数字确定为根节点的值,然后在中序遍历序列中找到该值的位置,在中序遍历原创 2018-03-20 23:10:24 · 256 阅读 · 0 评论 -
剑指offer 反转链表 @python
剑指offer 反转链表 @python题目描述输入一个链表,反转链表后,输出链表的所有元素。Solution# -*- coding: utf-8 -*-"""Created on Fri Mar 23 09:11:41 2018@author: Saul"""# -*- coding:utf-8 -*-# class ListNod原创 2018-03-23 09:40:43 · 205 阅读 · 0 评论 -
剑指offer 树的子结构 @python
剑指offer 树的子结构 @python题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)Solution第一步:现在树A中查找与根节点值一样的结点。第二步:判断树A中该结点以下的结构是否和树B一样Note: 注意异常检测。# -*- coding: utf-8 -*-"""Create原创 2018-03-23 10:30:18 · 556 阅读 · 0 评论 -
剑指offer 链表中倒数第k个结点 @python
剑指offer 链表中倒数第k个结点 @python题目描述输入一个链表,输出该链表中倒数第k个结点。Solution设置两个指正fast,slowfast, slow, fastfast先走k−1k-1步,当fastfast到达链尾时,slowslow指向的正好时第kk个结点。Notes: 注意代码的鲁棒性,当输入空指针的处理,以及当kk大于链表长度的处理,然后还有k=0k=0时,forfor循环原创 2018-03-22 21:02:02 · 318 阅读 · 0 评论 -
剑指offer 调整数组顺序使奇数位于偶数前面 @python
剑指offer 调整数组顺序使奇数位于偶数前面 @python题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。Solution对于不需要考虑奇数与奇数,偶数与偶数之间的相对位置不变的话,只需要设置左右两个指针,然后交换就行。但考虑相对位...原创 2018-03-22 20:31:34 · 288 阅读 · 0 评论 -
剑指 offer 二叉树的下一个结点 @python
二叉树的下一个结点题目描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。Solution如果这个结点有右子树,而右子树上有左结点,则一直沿着右子树的左结点出发寻找最左的左结点就是该结点的下一个结点,若右子树上没有左结点则该节点的下一个结点是这个右子树的根结点。如果这个结点没有右子树,而该结点是其父结点的左结点,则原创 2018-03-21 09:54:08 · 563 阅读 · 0 评论 -
剑指offer 打印从1到最大的n位数 @python
打印从1到最大的n位数题目描述打印1到最大的n位数,如n=3时打印1到999 Solution# -*- coding: utf-8 -*-"""Created on Thu Mar 22 14:59:49 2018@author: Saul"""class Solution: def Increment(self, number): isOverflow = Fals原创 2018-03-22 16:40:45 · 1178 阅读 · 0 评论 -
剑指offer 机器人的运动范围 @python
剑指offer 机器人的运动范围 @python题目描述地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?原创 2018-03-22 11:56:04 · 1736 阅读 · 0 评论