![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
剑指offer
文章平均质量分 63
水泽木兰@野蛮生长
每天进步一点点
展开
-
二叉搜索树的后序遍历and重建二叉树
题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。思想:主要考察的是对二叉树后序遍历的特点,左右根,所以可以先找到根节点,再找到左子树的范围,右子树的范围,判断左子树的值是否全都小于根节点和右子树的值是否全都大于根节点,然后再递归判断左,右子树是否都是后序遍历。。自己对递归还是很萌,在编写代码时,出现了...原创 2018-05-23 21:08:12 · 659 阅读 · 0 评论 -
数组中数字出现的次数
题目一:数组中只出现一次的2个数字一个整型数组里除了两个数字外,其他数字都出现了2次,清编写程序找出来这2个数字,要求时间复杂度为O(n),空间复杂度为O(1)。思路:本题对时间复杂度要求,如果没有要求可以用以往的方法,先pop,然后在in判断,这里采用了位运算--异或。1 先把数组中的每个元素异或,最后得到的是要找的2个数字的异或结果,因为相同数字异或结果为02 根据异或结果中的为1的位将数组中...原创 2018-06-05 09:20:38 · 1350 阅读 · 0 评论 -
在排序数组中查找数字——二分法
题目描述:统计数字在排序数组中出现的次数 class Solution: def top(self, target, L): if L is None or L == []: return None if target == None: return None if target in L: ...原创 2018-06-02 11:04:19 · 689 阅读 · 0 评论 -
n个骰子的点数
题目:把n个骰子扔到地上,所有的骰子朝上的一面点数之和为S,输入n,打印出所有可能的值出现的概率思路:剑指offer里感觉比较难的提,看书上的代码也没看的太懂,大致的思路:先把问题抽象出来,利用动态规划思想求解,首先要求点数和S出现的概率,就要先求出点数S出现的次数/总的次数,总的次数好求,就是每个骰子有6种可能,一共n个骰子,那么就有6*6.....6,n个6乘积,下面计算点数S出现的次数。把n...原创 2018-06-17 08:44:41 · 610 阅读 · 0 评论 -
扑克牌中的顺子
题目:从扑克牌中随机抽取5张,判断是不是顺子,大小王可以看做任意牌。class Solution: def sort_l(self, L, length): if L == None or length < 1: return False lis = sorted(L) #排序 num0 = lis.coun...原创 2018-06-17 09:21:41 · 182 阅读 · 0 评论 -
股票的最大利润
题目:假设某股票的价格是按时间先后顺序存储在数组中,请问卖该股票一次获得的最大利润是多少?class Solution: def sortting(self, lis): if len(lis) < 1 or lis == None: return -1 mix = 0 for i in range(len(li...原创 2018-06-17 11:12:10 · 127 阅读 · 0 评论 -
二叉树的深度
题目描述:输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。:思路:二叉树的遍历有两种解决方式:一种是dfs(深度优先遍历)是一种利用递归实现的搜索算法,一种是bfs(广度优先遍历)是一种利用对列实现的搜索算法。bfs的重点在于队列,dfs的重点在于递归,这是本质区别深度优先:树的高度=左子树和右子树的最大值+1# -*- co...原创 2018-07-11 22:23:03 · 91 阅读 · 0 评论 -
牛客--2 替换空格
题目描述: 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 注意:题目中的“ ”替换成长度为3的字符串,所以数组长度增加了。 python解决方法:先把字符串转化成列表,进行替换,然后把列表转化回字符串 lis = list(s) leng = len(s) for i in ...原创 2018-08-27 09:30:20 · 111 阅读 · 0 评论