- 博客(18)
- 资源 (42)
- 问答 (1)
- 收藏
- 关注
原创 数据结构之判断一棵树是不是完满二叉树
1完满二叉树除了叶子结点之外的每一个结点都有两个孩子结点。如下是完满二叉树 1 2 3 4 5 6 72 分析...
2019-10-28 21:07:11 2222
原创 数据结构之判断一棵树是不是完全二叉树
1完全二叉树完全二叉树是由满二叉树而引出来的。对于深度为K的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树。如下就是完全二叉树 1 2 34 5 6 7如下就是完全二叉树...
2019-10-28 01:05:00 3504 4
原创 数据结构之判断一棵树是不是满二叉树
1满二叉树除最后一层无任何子节点外,每一层上的所有结点都有两个子结点的二叉树。一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是满二叉树。也就是说,如果一个二叉树的层数为K,且结点总数是(2^k) -1 ,则它就是满二叉树。2 分析我们知道满二叉树是三角形的比如如下,最后一层任何一个节点的高度都是数的高度。 ...
2019-10-27 23:59:59 4149
原创 剑指offer之数组中的逆序对
1 问题在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007。比如数列{6,202,100,301,38,8,1},有14个序列对;比如数列{7, 5, 6, 4},有5个序列对{7,5},{7,6},{7,4},{5,4},{6,4};...
2019-10-27 00:31:56 1767
原创 剑指offer之归并排序
1 问题是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。归并排序是一种稳定的排序方法2 分析过程 1 4 3 2 6 8 7 5 ...
2019-10-26 02:38:39 1911
原创 剑指offer之求数组里面只出现一次的的两个数据
1 问题一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。2 分析第一种方法:我们用位运算我们想到位运算(1) a^a=0(2)a^0=a(2)a^b^c=a^(b^c)=(a^c)^b1) 对所有运算进行异或运算,最后结果就是两个出现一次的元素异或结果,接下来问题演变成了我们知道两个不...
2019-10-24 02:59:30 1787
原创 剑指offer之二进制中1的个数
1 问题实现一个函数,输入一个函数,输出该二进制数据中1的个数。例如9表示二进制数据1001,有2位是1,因此输入9,该函数会输出2。2 分析我们先了解下计算机里面位运算,有5种1)& 这个是与操作,规律如下1 & 1 = 1 1 & 0 = 0 0 & 1= 0 0 & 0 = 0...
2019-10-22 01:15:23 1760
原创 剑指offer之调整数组顺序使奇数位于偶数前面
1 问题输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分,比如数组{6、5 、1、4、2 、7 、3、8、9}我们调整后变成这样{9、5、1、3、7 、2 、4 、8、6} 2 分析我们利用partition算法博客可以知道,这里还是利用两个指针,一个指针指向开始,一个指针指向尾巴,分别从两边进...
2019-10-20 21:25:28 1773 2
原创 剑指offer之最小的K个数
1 问题输入N个整数,找出其中最小的K个,例如输入数组6、5、1、4、 2、 7、 3、 8,最小的4个数是1、2、3、42 分析1)我们可以用快速排序从小到大,但是时间复杂度是O(nlogn) 我们取出最前面的K个数就行。2)用partition算法,时间复杂度是O(n)我之前的博客讲解partition算法的总结如下:我们使用partition算法的时...
2019-10-20 02:04:06 1766
原创 剑指offer之快速排序
1 快速排序通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列2 分析思路很明显,先是用到了partition算法思想(前面的博客提到了),然后再把原始数据分成几部分然后递归同样用partition算法处理...
2019-10-19 02:39:46 1823
原创 剑指offer之partition算法
1 问题partition 算法:从无序数组中选出枢轴点 pivot,然后通过一趟扫描,以 pivot 为分界线将数组中其他元素分为两部分,使得左边部分的数小于等于枢轴,右边部分的数大于等于枢轴(左部分或者右部分都可能为空),最后返回枢轴在新的数组中的位置。如果原始数组为[5,9,2,1,4,7,5,8,3,6],那么整个处理的过程如下图Partition 可不只用在快速排序...
2019-10-18 01:42:59 2434
原创 linux shell之删除当前文件夹不包含文件1和文件2的其他所有文件
1 问题删除当前文件夹不包含文件1和文件2的其他所有文件,这个当前文件夹里面可以包含子文件夹,然后子文件夹里面也有文件1和文件2,但是这里的文件1和文件2也不应该被删除。2 解决办法 可以用如下shell命令都行find . -type f -not -name "1.txt" -not -name "2.txt" -exec rm -rf {} \;...
2019-10-17 22:01:23 2173
原创 剑指offer之数组出现次数超过一半的数字
1 问题数组中有一个数字出现了次数超过数组长度的一半,请找出这个数字。比如{1,2,3,2,2,2,5,4,2},我们知道这个数是22 分析我们数组元素个数分为单数和双数1)数组长度是单数的情况下我们有5个元素,里面至少3个2,还有2个元素我们可能重复也可能不重复我们可以定义一个计数为1,先用变量保存数组第一个数据,然后遍历数组,如果发现后面的数...
2019-10-17 00:40:27 1741
原创 剑指offer之重建二叉树
1 问题重建二叉树:给定二叉树的先序遍历(根左右)和中序(左中右)遍历结果,建立这棵二叉树。输入保证二叉树无重复结点以先序{1, 2, 4, 7, 3, 5, 6, 8}和中序{4, 7, 2, 1, 5, 3, 8, 6}为例2 分析先序遍历的特点,我们知道{1, 2, 4, 7, 3, 5, 6, 8}第一个元素1就是树的根节点,然后中序遍历{4,...
2019-10-15 01:09:55 1702
原创 剑指offer之求二叉树中两个节点的最低共同父节点
1 问题求二叉树中俩个节点的最低共同父节点,比如二叉树如下 4 2 6 1 3 5 7 比如节点1和3两个节点的最低共同父节点是2,节点3和5两个节点的最低共同父节点是4,节点5和6两个节点的最低共同父节点是6, 也有可能其中1个节点或者2个节点不在二叉树里面,那么他们就...
2019-10-12 23:58:18 1940
原创 剑指offer之二叉树的下一个结点
1 问题给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针2 分析比如我现在的二叉树如下 4 2 6 1 3 5 7 这里分3种情况1) 如果这个节点包含右子树,...
2019-10-11 23:45:19 1764
原创 剑指offer之二叉搜索树和双向链表
1 问题比如我们搜索二叉树如下,我们需要变成双向链表2 分析我们知道这个变成双向链接的时候是按照树的中序遍历打印的,我们只需要在中序遍历打印的时候操作该节点,我们可以用临时变量保存这个节点,同时我们也需要单独增加一个链表节点变量,我们需要保证这个节点的左边指向是该链表节点,然后该链表节点的右指向是这个节点,然后我们再把这个节点赋值给这个链表节点,...
2019-10-11 01:02:34 1739
原创 剑指offer之二叉搜索树的第K个节点
1 问题给定一颗二叉搜索树,请找出其中的第k小的结点。例如, 5 3 7 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4。2 分析二叉树定义:二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树...
2019-10-10 01:29:26 1830
Android之常用命令和工具.pdf
2021-04-01
math-basics.rar
2019-08-01
c_log_to_file.txt
2019-06-15
Source Insight黑色和灰色的背景配置
2019-04-23
Xshell5(Xshell5免费)
2019-03-21
linux shell脚本攻略2
2019-03-06
xshell(windows)
2018-12-05
Android打印当前app的日志工具类
2018-09-20
pidcat.py_in_ubuntu
2018-05-12
pc web access phone file
2017-12-25
MPAndroidChart让(折线图、柱形图、饼状图、散列图、雷达图)优雅的舞动
2015-11-30
Android怎么sp怎么确保多进程
2018-05-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人