1、满二叉树(Full Binary Tree) 国内满二叉树: 如果一个二叉树的每一层的节点数都达到最大值,则这个二叉树就是满二叉树。也即如果一个二叉树有n层,且节点总数为(2^n)-1,则它就是满二叉树。如下图就是国…
标签:算法
CF_1113C_Sasha and a Bit of Relax:(扫盲:区间异或)
题意:就是求一段[l,r]使得r-l+1是偶数且 a_l⊕a_l+1⊕…⊕a_mid=a_mid+1⊕a_mid+2⊕…⊕a_r的区间。 解法:如果A^B=C, 那么A=B^C,(两边都是异或上B,自己异或自己等于0),…
详细解读KMP模式匹配算法
转自:http://blog.csdn.net/fightlei/article/details/52712461 首先我们需要了解什么是模式匹配? 子串定位运算又称为模式匹配(Pattern Matching)或串匹配…
经典算法题1:找出数组中只出现一次的数字,其它数字都出现了两次
题目:一个整型数组里除了一个数字之外,其它的数字都出现了两次。请写程序找出这个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。 分析:由于题目要求时间复杂度为O(n),所以先排序然后比较相邻数字是否相同…
2019华为实习机试题
2019华为实习机试题 第一题: 第二题 第三题 又一次痛失良机,总结下来就是: 1、实力不够,硬伤啊。。。。 2、心态不好,答题的时候没掌握好节奏,紧张到思路都乱了,,, 最后一道题都写好了,可惜有个小问题没能在有限的…
哈希表(Hash Table)-哈希概述
哈希表支持一种最有效的检索方法:散列。 从根来上说,一个哈希表包含一个数组,通过特殊的索引值(键)来访问数组中的元素。 哈希表的主要思想是通过一个哈希函数,在所有可能的键与槽位之间建立一张映射表。哈希函数每次接受一个键将…
leetcode练习1
立下个flag,以后每天刷一道LeetCode上面的算法题:最近学习,发现一个自己的大忌,我对未知的东西缺乏勇气,比方爬虫,以前感觉老高端了,接触了发现在我的认知范围之内,只要不是过于难得问题,我还是可以搞得定的,我有自…
常见排序的时间复杂度和空间复杂度
常见排序的时间复杂度和空间复杂度 参考 参考
算法中快慢指针的应用(Java)
何为快慢指针?快慢指针就是指两个指针在移动的过程中,慢的指针每次移动一步,而快的指针每次移动两步。 快慢指针的应用一 (判断一个链表是否有环): 问题来源:leetcode-141题,环形链表 h…
【算法复习】堆排序
算法复习-堆排序详解 一、 概念介绍 堆 1.堆是一棵完全二叉树,常可以用一个一维数组表示。 2.如果一个节点在数组中的下标为k,则其左孩子下标=2k+1,右孩子下标=2k+2。 3.如果一个堆的长度为n,则其最后一个非…
数据结构之希尔排序
//对顺序表L作希尔排序 void ShellSort(SqList *L) { int i,j; int increment = L->length; do { increment = increment / 3…
数据结构之堆排序
堆具有完全二叉树的性质:每个结点大于等于左右孩子的堆称为大顶堆,或每个结点小于或等于左右孩子的堆称为小顶堆。 堆排序:将待排序的序列构建成一个大顶堆,此时,最大值在整个堆的根结点。将它移走(其实就是将它与堆数组的末尾元素…