![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构及算法
文章平均质量分 77
数据结构及算法相关的学习笔记
yuan_404
这个作者很懒,什么都没留下…
展开
-
HashMap源码分析 (1.基础入门) 学习笔记
本章为+ 拉钩教育HashMap 学习笔记。原创 2023-04-03 11:25:13 · 291 阅读 · 0 评论 -
HashMap源码分析 (2.原理分析) 学习笔记
第一次 put 时,Key1 的 Hash 值经过扰乱后得到 hash = 1122,通过寻址公式可得 index = 2,此为 Node1第二次 put 时,Key2 的 Hash 值经过扰乱后得到 hash = 162, 通过寻址公式也可得 index = 2,此为 Node2那么此时 Node1、Node2 就发生了碰撞当发生了上述的碰撞时,就需要将 Node2 的 next 指向 Node1,并且 index = 2 的元素存为 Node2,变为一个链表。原创 2023-04-03 14:25:25 · 281 阅读 · 0 评论 -
HashMap源码分析 (3. 手撕源码) 学习笔记
本章为学习笔记。原创 2023-04-03 17:12:41 · 320 阅读 · 0 评论 -
开发中如何选择集合类
在开发中,选择什么集合实现类,主要取决于业务操作特点,然后根据集合实 现类特住进行选择,分析如下:1. 先判断存储的类型:一组对象或一组键值对2. 一组对象: Collection接口允讦重复: List增删多:LinkedList —— 底层维护了一个双向链表改查多:ArrayList —— 底层维护 Object 类型的可变数组不允讦重复 :Set无序: HashSet —— 维护了一个哈希表,即 数组+链表/树排序: TreeSet插入和取出顺序一致:LinkedHas原创 2020-08-11 13:46:39 · 119 阅读 · 0 评论 -
动态规划解题步骤
动态规划1. 题目特点计数-有多少种方式解决。求最大最小值-从左上角走到左下角路径的最大数字之和求存在性-博弈中,是否存在红方胜的解2.解题步骤以下都是以 lintcode 中第 669 题为例:“给出面额为2,5,7的硬币以及总金额为27. 写一个方法来计算给出的总金额可以换取的最少的硬币数量. 如果已有硬币的任意组合均无法与总金额面额相等, 那么返回 -1.”1、确定...原创 2020-02-08 11:42:02 · 1576 阅读 · 0 评论 -
宽度优先搜索
宽度优先搜索(BFS)1.什么时候使用BFS1.图的遍历 -层级遍历 -由点及面 -拓扑排序2.最短路径 -仅限简单图求最短路径 ,即图中每条边的长度都是1(一样),且没有方向。2.解图的遍历(层级遍历)注:树是一种特殊的图,树属于图。 宽度优先搜索就是把二叉树的每一层依次压入队列。步骤1.创建一个队列,把起始节点都放进去。2. while 队列不空,处理队列中的节点...原创 2020-02-19 11:27:56 · 2781 阅读 · 0 评论 -
并查集笔记
并查集(Union Find)1、查找(Find)判断两个值是否在同一个集合中。复杂度为:O(n)↓int find(int x){ if(father[x] == x){ return x; } return father[x];}优化代码↓复杂度:O(1)int find(int x){ if(father[x] == x){ return x; } fa...原创 2020-02-29 14:45:11 · 78 阅读 · 0 评论 -
字典树
字典树(Trie Tree)考点1、★ Trie 直接实现2、利用 Trie 树前缀特性解题3、矩阵类里面,字符串一个一个字符,深度优先遍历的问题。什么是字典树1、最上面是一个虚根节点,没有值。2、在字典树中每个节点都有26个虚分支,对应26个字母。3、若要存储某个单次,如:ABC,首先会实例化根节点下的A分支,然后再实例化A节点下的B分支,再实例化B节点下的C节点,最后要给每个...原创 2020-07-23 14:17:33 · 96 阅读 · 0 评论