自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 实现二叉树先序,中序及后序遍历解题笔记

思路:对于先序,直接用非递归或者递归的深度搜索方法遍历整个树就可得到;而对于中序及后序,可以事先定义两个栈,用于存储先序遍历的过程中的结点,然后按照各自的次序在该退栈的时候退栈,即可得到中序和后序的遍历顺序。对于中序:在遍历到左子树的最后一个结点时,将此结点出栈并记录,然后再从此结点的右子节点开始循环遍历即可。对于后序:退栈的时机与中序相似,在遍历到某个结点的右子节点时,如果这个右子节点为空,则进行退栈操作,需要将此前中序栈退栈过而后序栈没有退栈过的结点全部退栈,直到退到中序栈的栈顶结点为止。如:

2021-05-11 18:01:57 96

原创 和为S的连续正数序列解题笔记

题目:小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列?思路:一般的解题方法有暴力法和滑动窗口,这里分享另一种解法,首先观察下图:由此我们可以判断数S能否由m个连续的正整数组成。接着我们来看:由于1到2S\sqrt{2S}2S​

2021-04-07 17:32:22 71

原创 二叉搜索树的后序遍历序列

思路:简而言之,将二叉搜索树的后序序列倒过来,就是相应的树左右翻转过来后的新树的中序序列,对这个中序序列进行递归或非递归遍历,非递归方法中设立节点栈和最大数,每一次遍历的新节点的值都不能超过这个最大数,否则就不是二叉搜索树。代码:class Solution {public: int max_n=2147483647; bool VerifySquenceOfBST(vector<int> sequence) { int last_max=max_n;

2021-03-26 19:32:47 60

原创 顺时针打印矩阵

class Solution {public: vector<int> printMatrix(vector<vector<int> > matrix) { vector<int> outp; if(matrix.size()==0) return outp; int cols_min_max[2]={0,(int)matrix[0].size()}; int r

2021-03-24 16:24:57 45

原创 重建二叉树解题笔记

文章目录题目描述:解题思路:递归:思路:代码:非递归:思路:代码:题目描述:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字,则重建二叉树并返回。牛客示例:输入:[1,2,3,4,5,6,7],[3,2,4,1,6,5,7]返回值:{1,2,5,3,4,6,7}解题思路:此题可用递归或非递归方法解,按先序的顺序,利用中序的数据辅助进行二叉树的重建。首先利用先序与后序的特性,可以得知先序的第一个结点就是根节点,而对应到中序顺序

2021-03-12 16:59:50 68

原创 二维数组查找解题笔记

目标题目:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:输入: 7,[[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]]返回值: true解题思路:为了尽可能节省时间,首先我们先通过对比将不可能出现目标值的一部分数据排除掉。因为数组内的元素数据是以一定的顺序排列的,同一排左边小于右边,同一列上边小于

2021-03-08 13:59:14 99 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除