数据结构
文章平均质量分 91
谜底666
我迷恋的时光自天空倾倒
展开
-
树相关的面试题整理
1.二叉树的最大深度 最简单的应该还是左右子树最大的+1 2.二叉树的最小深度 最后用个min比较左右子树,小的+1 3.从中序和后序构造二叉树 得先定义一个unordered_map<int,int> m;然后将所有inorder的存到map中,m[inorder[i]]=i;调用的build函数的6个参数分别是(inorder,0,inorder.size()-1,pos...原创 2020-03-20 20:53:07 · 555 阅读 · 0 评论 -
链表题目整理
141.环形链表 快慢指针slow == fast,即存在 142.环形链表2:求环的起点 slow== fast后,令slow = head,然后来个while(slow != fast)里面每个走一步,再次重合的点就是起点 a+b+c+b = 2(a+b) 即a=c 扩展问题:求环长 当两个指针首次相遇,证明链表有环的时候,让两个指针从相遇点继续循环前进,并统计前进的循环次...原创 2020-03-18 18:16:44 · 171 阅读 · 0 评论 -
剑指offer笔记
面试题3 数组中的查找 对于这道题来说,书上的和LeetCode上的是不一样的。 在LeetCode上,是一位数组中判断是否有重复数字,有的话任意返回一个就行。这个思路也有两个: 先用一个排序如快排O(nlogn),然后就判断相邻元素是否相等,若相等直接返回即可。 用一个集合set,遍历数组放进去,因为集合有唯一性,若哪个在添加的时候,添加失败,说明这个已经在集合中了,就意味着重复。 在书...原创 2020-03-10 11:55:48 · 196 阅读 · 1 评论 -
程序员面试金典笔记
面试题01.01 判断字符串中字符是否唯一 遇到题目,先想需要考虑的情况: 字符串是ASCII字符串还是Unicode字符串?假设为ASCII。 首先得有字符串长度判定,超出长度后直接false。 思路主要是使用位向量的方法。我们可以使用一个int类型的变量(下文用checker表示)来代替长度为26的bool数组。。假设这个变量占26个bit(在多数语言中,这个值一般不止26),那么我们可...原创 2020-03-10 11:12:38 · 340 阅读 · 0 评论 -
资料汇总
一、先只在这里保存一个程序员小吴的十大经典排序算法,以防找不到了: https://mp.weixin.qq.com/s/vn3KiV-ez79FmbZ36SX9lg 二、以及一个外文的数据结构网址: https://visualgo.net/en 三、刷题的三个常用网站: 1.力扣:https://leetcode-cn.com/problemset/all/ 力扣答案:https:...原创 2019-09-23 20:57:11 · 218 阅读 · 0 评论 -
数据结构一点心得
1、要有优化意识,前面的 BF,RK 算法已经能够满足我们需求了,为什么发明 BM 算法?是为了减少时间复杂度,但是带来的弊端是,优化代码变得复杂,维护成本变高。 2、需要查找,需要减少时间复杂度,应该想到什么?散列表。 3、如果某个表达式计算开销比较大,又需要频繁的使用怎么办?预处理,并缓存。 4.霍夫曼编码的目的是为了减少编码占用的空间大小,通过让出现频率最高的字符使用最短编码的形式来达成。...原创 2019-09-24 19:29:16 · 112 阅读 · 0 评论