【图解数据结构与算法】LRU缓存淘汰算法面试时到底该怎么写(上)
链表实现的LRU缓存淘汰算法的时间复杂度是O(n),当时我也提到了,通过散列表可以将这个时间复杂度降低到O(1)。Redis的有序集合是使用跳表来实现的,跳表可以看作一种改进版的链表。Redis有序集合不仅使用了跳表,还用到了散列表。LinkedHashMap也用到了散列表和链表两种数据结构。散列表和链表都是如何组合起来使用的,以及为什么散列表和链表会经常放到一块使用。LRU缓存淘汰算法链表实现....
【Java数据结构】二叉树进阶——非递归实现前中后序遍历二叉树(深入理解二叉树)+进阶大厂面试题(一行一注释)
【Java数据结构】二叉树进阶——非递归实现前中后序遍历二叉树+进阶大厂面试题非递归实现遍历二叉树(深入理解二叉树)⭐非递归前序遍历⭐非递归中序遍历⭐非递归后序遍历大厂OJ面试题1. 二叉树的构建及遍历2. 二叉树的分层遍历3. 给定一个二叉树,找到该树中两个指定节点的最近公共祖先4. 二叉树搜索树转换成排序双向链表5. 根据一棵树的前序遍历与中序遍历构造二叉树6. 根据一棵树的中序遍历和后序遍....
【Java数据结构】 二叉树经典OJ面试题——刷题笔记+解题思路
【Java数据结构】 二叉树经典OJ面试题——刷题笔记+解题思路二叉树的前序遍历中序遍历后续遍历判断两棵树是否是相同树另一棵树是否是当前树的子树求二叉树最大深度判断二叉树是否是平衡二叉树判断镜像二叉树二叉树的前序遍历前中后序 遍历 其实方法都一样,就是把节点的访问顺序变一下,代码都一模一样,只是换顺序罢了题目:思路: 本题要求将遍历到的节点放入一个List中返回前序遍历顺序:根节点——>左....
【Java数据结构】栈与队列 经典面试题——刷题笔记
【Java数据结构】栈与队列 经典面试题——解题笔记+动图思路1. 实现一个最小栈题目:思路:实现代码2. 括号匹配问题题目:思路:实现代码3. 用队列实现栈题目:思路:实现代码:4. 用栈实现队列题目:思路:实现代码:5. 设计循环队列题目:思路:实现代码:1. 实现一个最小栈题目:思路:把题目要求的最小栈内部分为两个栈,一个stack用于储存所有元素,另一个min_stack用于储存最小的元....
数据结构面试之十四——字符串的模式匹配
数据结构面试之十四——字符串的模式匹配题注:《面试宝典》有相关习题,但思路相对不清晰,排版有错误,作者对此参考相关书籍和自己观点进行了重写,供大家参考。十四、字符串的模式匹配1. 模式匹配定义——子串的定位操作称为串的模式匹配。2. 普通字符串匹配BF算法(Brute Force 算法,即蛮力算法)【算法思想】:....
数据结构面试之十三——Hash表(散列表)
数据结构面试之十三——Hash表(散列表)题注:《面试宝典》有相关习题,但思路相对不清晰,排版有错误,作者对此参考相关书籍和自己观点进行了重写,供大家参考。十三、数据结构面试之十三—哈希表1.基本概念若结构中存在关键字和K相等的记录,则必定在f(K)的存储位置上。由此,不需比较便可直接取得所查记录。称这个对应关系f为散列函数(Hash function),按这个思想建立的表为散列表。对不同的关键....
数据结构面试之十二——排序3(排序算法归类、排序时间、空间复杂度、稳定性总结)
题注:《面试宝典》有相关习题,但思路相对不清晰,排版有错误,作者对此参考相关书籍和自己观点进行了重写,供大家参考。十一、数据结构面试之十二——排序3(排序算法归类、排序时间、空间复杂度、稳定性总结)排序算法归类插入排序类选择排序类交换排序类归并排序类直接插入排序希尔排序直接选择排序堆排序冒泡排序快速排序归并排序排序算法汇总:平均时间复杂度最好情况最差情况空间复杂度稳定性直接插入排序O(n2)O(....
数据结构面试之十——排序1(直接插入、希尔、冒泡、直接选择排序)
题注:《面试宝典》有相关习题,但思路相对不清晰,排版有错误,作者对此参考相关书籍和自己观点进行了重写,供大家参考。九、数据结构面试之十——排序1(直接插入、希尔、冒泡、直接选择排序)1.直接插入排序【算法思想】:每次将一个待排序的元素,插入到前面已经排序的子序列中,直到全部元素插入完毕为止。【算法实现】://最简实现排序[交换实现].template <class T>void di....
数据结构面试之九——图的常见操作3之最小生成树
数据结构面试之九——图的常见操作3之最小生成树题注:《面试宝典》有相关习题,但思路相对不清晰,排版有错误,作者对此参考相关书籍和自己观点进行了重写,供大家参考。九、图的常见操作3之最小生成树最小生成树——包含带权图中的全部顶点并不能形成环,且权值之和最小的图。求解最小生成树的方法包括:Prim算法和Kruskal算法。对于Prim算法思想:1)从源结点集中选定一个源结点(初始源节点集合中只有设定....
数据结构面试之八——图的常见操作2之最短路径
数据结构面试之九——图的常见操作2之最短路径题注:《面试宝典》有相关习题,但思路相对不清晰,排版有错误,作者对此参考相关书籍和自己观点进行了重写,供大家参考。八、图的常见操作2之最短路径(一)最短路径核心思想步骤如下:(1)从选定的源顶点出发,先选择与该源顶点相连的权值最小且尚未标识过的顶点X,并标识X为True、记录该路径长度;(2)然后比较经过该顶点X与其余顶点相连的路径之和是否小于源顶点到....
本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。
算法编程
开发者社区在线编程频道官方技术圈。包含算法资源更新,周赛动态,每日一题互动。
+关注