随笔分类 - 数据结构与算法
摘要:1.位图 由题引入: 【腾讯】:2.给40亿个不重复的无符号整数,没排过序。给一个无符号整数,如何快速判断一个数是否在这40亿个数中。 如果将40亿个数按整型放入内存,显然不科学,就算内存足够,这样做也是浪费空间。 解决思路:用一个比特位表示一个数,存在的话该位上就置为1,不在的话置为0;这样40亿
阅读全文
摘要:一、直接插入排序 直接插入排序(Insertion Sort)的基本思想是:每次将一个待排序的元素记录,按其关键字大小插入到它前面已经排好序的子序列中的适当位置,直到全部元素插入完成为止。 设需要排序的数组为a[0…n-1]。 1. 初始时,i = 0,a[0]自成1个有序区,无序区为a[1..n-
阅读全文
摘要:一、常见题型 1. 求两个节点的最近公共祖先; 2. 求二叉树中最远的两个节点的距离; 3. 由前序遍历和中序遍历重建二叉树(如:前序序列:1 2 3 4 5 6 - 中序序列 :3 2 4 1 6 5); 4. 判断一棵树是否是完全二叉树 ; 5. 将二叉搜索树转换成一个排序的双向链表。要求不能创
阅读全文
摘要:一、相关概念 树是n( n>=0)个有限个数据的元素集合,它的数据的存储结构形状像一颗倒过来的树。根在上,叶在下:如图所示 1.一个独立的节点也可看作一棵树,它既为根节点,又为叶子节点; 2.一个节点也没有称作空树; 3.这是一颗典型的树,根节点为A; 4.一个节点只有唯一父节点。 节点: 结点包含
阅读全文
摘要:一、常见题型如下: 1. 实现一个栈,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值的操作)的时间复杂度为O(1) 2. 使用两个栈实现一个队列 3. 使用两个队列实现一个栈 4. 元素出栈、入栈顺序的合法性。如入栈的序列(1,2,3,4,5),出栈序列为(4,5,3,2,1) 5.
阅读全文
摘要:一、二叉搜索树的定义及性质 二叉查找树(Binary Search Tree),也称有序二叉树(ordered binary tree),排序二叉树(sorted binary tree),是指一棵空树或者具有下列性质的二叉树: 1. 每个节点都有一个作为搜索依据的关键码( key) , 所有节点的
阅读全文
摘要:1. 什么是斐波那契数? 这里我借用百度百科上的解释:斐波那契数,亦称之为斐波那契数列(意大利语: Successione di Fibonacci),又称黄金分割数列、费波那西数列、费波拿契数、费氏数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下被
阅读全文

浙公网安备 33010602011771号