
数据结构与算法
zyuPp
你今日练习了吗?
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【面试复习】【数据结构】【递归和分治】
递归recursion通过函数体来进行的循环例子理解盗梦空间,可以进入一层梦之后,进入下一层梦,不断循环。。计算n!def Factorial(n): if n<=1: return 1 return n*Factorial(n-1)递归的伪代码:def recursion(level,param1,param2,..): #递归结束条件 if level...原创 2020-04-02 20:44:33 · 204 阅读 · 0 评论 -
【面试复习】【数据结构】----二叉树遍历
二叉树遍历前序遍历pre-order中序遍历in-order后序遍历post-order实际使用中用得很少?深度和广度优先用得多,这是要说一下顺序,自己去理解前序遍历根-左-右 : ABDECFG中序遍历左-根-右 DBEAFCG后序遍历左-右-根 DEBFGCA重点:如果是二叉搜索树,那么中序遍历出来的是有序的数组\color{red}{重点:如果是二叉搜索树,那...原创 2020-03-29 15:47:25 · 264 阅读 · 0 评论 -
【面试复习】【数据结构】---- 树&二叉树&二叉搜索树&图
树和图树和二叉树树的产生是由链表构成,人们觉得链表可以不止一个next,可以有多个next,不过称其为next有点不对劲,所以就有了左和右,即左树右树.术语:根节点,父亲结点,孩子结点,字数,层数代表距离图那么我们除了有next往下指以外,能否说子节点可以往回指,指上去,指到根节点,那么这就叫做图Graph简单总结:链表就是特殊化的树,树就是特殊化的图树节点的实现:pytho...原创 2020-03-29 11:58:07 · 196 阅读 · 0 评论 -
【面试复习】【数据结构】----哈希表
哈希表哈希表、哈希函数和哈希碰撞Map和SetHashMap, HashSet, TreeMap, TreeSet哈希表、哈希函数和哈希碰撞如何快速地用O(1)的速度找到一个单词?把单词作为key输入到hash function,这里key用了字母的ASCII码来表示,hash function是对单词的字母ASCII码求和再取30的模,对应了哈希表的索引值,就能找到单词。...原创 2020-03-27 15:17:26 · 374 阅读 · 0 评论 -
【leetcode703】【返回数据流中的第K大元素】
返回数据流中的第K大元素设计一个找到数据流中第K大元素的类(class)。注意是排序后的第K大元素,不是第K个不同的元素。你的 KthLargest 类需要一个同时接收整数 k 和整数数组nums 的构造器,它包含数据流中的初始元素。每次调用 KthLargest.add,返回当前数据流中第K大的元素。示例:int k = 3;int[] arr = [4,5,8,2];KthLarg...原创 2020-03-26 17:14:37 · 395 阅读 · 0 评论 -
【面试复习】【数据结构】----优先队列
优先队列Priority queue特点:正常进入,按照优先级出实现机制:(了解背后实现机制,可以不用自己实现)堆(heap):二叉堆、多项式堆、斐波那契堆【优先队列基本都用堆实现】二叉搜索树小顶堆顶点永远小于左孩子和右孩子大顶堆顶点永远大于左孩子和右孩子堆的复杂度搜索最小值,基本都为O(1),所以二叉堆效率算是比较低的,因为删除插入的其他操作都为logn斐波那契堆比...原创 2020-03-26 12:02:42 · 239 阅读 · 0 评论 -
数据结构与算法-----复杂度分析
复杂度分析为什么需要做复杂度分析?首先,我们要知道,数据结构和算法要解决的问题是快和省,即如何代码运行得又快又省存储空间,执行效率是算法的一个非常重要的考量指标。其实现在的工具这么完善,我们大可以把代码跑一遍,通过统计、监控,就能得到算法执行的时间和占用的内存大小。为什么还要做时间、空间复杂度分析呢?这种方法是正确的,叫做事后统计法,当同时这种方法存在一些局限:测试结果非常依赖测试环...原创 2019-08-02 15:53:47 · 337 阅读 · 0 评论 -
数据结构与算法-----数组
Array 数组我想,作为学过编程语言的你,对数组肯定不陌生,它在每种编程语言都会出现,是最常用的数据类型,它也是一种最基础的数据结构,尽管是简单且基础,但是你时候了解它的精髓呢?让我来带你去深入了解一波吧!进入学习之前,我们先带着这个问题继续学习下去,“为什么数组要从 0 开始编号,而不是从 1 开始呢?”实现随机访问数组是一种线性表的数据结构,它是用一组连续的内存空间,来存储一组具有相...原创 2019-08-02 18:13:46 · 270 阅读 · 0 评论 -
数据结构与算法-----链表
链表链表经典应用场景LRU缓存淘汰算法是链表的一个经典应用场景,缓存是一种提高数据读取性能的技术,缓存大小有限,当缓存被用满时,哪些数据应该被清理出去,哪些数据应该被保留?这就需要缓存淘汰策略来决定。常见的策略有三种:先进先出策略 FIFO(First In,First Out)、最少使用策略 LFU(Least Frequently Used)、最近最少使用策略 LRU(Least Rece...原创 2019-08-06 15:25:00 · 347 阅读 · 0 评论