动动大帝
动动大帝
全部文章
数据结构与算法
八股笔记(12)
计算机网络(4)
锁与多线程(2)
归档
标签
去牛客网
登录
/
注册
动动大帝的博客
全部文章
/ 数据结构与算法
(共10篇)
最短路径
LC743.网络延迟时间 (微信公众号@宫水三叶的刷题日记) 三叶大佬总结的太好了,先搬过来再慢慢理解;比较好理解的建图方式为邻接矩阵。 class Solution { int N = 110, M = 6010; // 邻接矩阵数组:w[a][b] = c 代表从 a...
Java
图
最短路
2022-03-25
0
532
对于二分法的进一步体会
二分查找只有一个思想,那就是:逐步缩小搜索区间。 原来写过一篇二关于二分法的模板,但是在后面的题目练习中,总感觉对二分法的理解还是差那么点意思。 总结的模板根本就没有办法解决题目,经过学习对比后,发现写二分法的重点从来就不在于使用的是哪一个模板(所有模板的背后逻辑都是一样的),更不在于设置的区间是...
Java
二分查找
2022-03-18
0
482
双向列表实现LRU
lc146.LRU缓存 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存 int get(int key) 如果...
Java
双向链表
2022-02-16
0
339
初识并查集
基本概念 并查集是一种数据结构 并查集这三个字,一个字代表一个意思。 并(Union),代表合并 查(Find),代表查找 集(Set),代表这是一个以字典为基础的数据结构,它的基本功能是合并集合中的元素,查找集合中的元素 并查集的典型应用是有关连通分量的问题 并查集解决单个问题(添加,合...
Java
并查集
2022-02-16
1
391
回溯算法
何为回溯? 回溯算法又叫作回溯搜索算法,简称回溯法,是一种搜索的方式(本质为穷举搜索)。 回溯是递归的“副产品,有递归过程则常有回溯过程,回溯函数就是递归函数。 回溯法解决的问题都可以抽象为树形结构,因为回溯法解决的问题都是在集合中递归查找子集,集合的大小就构成了树的宽度,递归的深度构成了树的...
Java
深度优先搜索
回溯
2022-02-12
0
576
滑动窗口
数组操作——滑动窗口 所谓滑动窗口,就是不断地调整子数组地起始位置和终止位置,从而得出想要的结果。 例题:今日leetCode每日一题 :1984. 学生分数的最小差值 给你一个 下标从 0 开始的整数数组 nums ,其中 nums[i] 表示第 i 名学生的分数。另给你一个整数 k 。...
Java
数组
滑动窗口
2022-02-11
1
394
快速求算两数的最大公约数(gcd)
快速求得a和b的最大公约数的主要方式有两种: 更相减损法 欧几里得算法 其中欧几里得算法的递归实现最为好写,复杂度为O(log(a+b)),在绝大多数的情况下适用,只有在需要实现高精度时,才会考虑使用更相减损法。 还有一种stein算法,三叶大佬说是没有必要掌握的。 以今天的LeetCode每...
Java
字符串
组合数学
2022-02-10
0
508
自然排序和定制排序(对比总结附后)
这里所说到的Java中的排序并不是指插入排序、希尔排序、归并排序等具体的排序算法。而是指执行这些排序算法时,比较两个对象“大小”的比较操作。 为了解决如何比较两个对象大小的问题,JDK提供了两个接口 java.lang.Comparable 和 java.util.Comparator 。 一...
Java
堆(优先队列)
有序集合
队列
2022-02-08
0
1347
Java中的HashMap的底层原理实现、工作原理?
以JDK7为例子说明: HashMap map = new HashMap(); 在实例化后,底层创建了一个长度为16的一维数组Entry[] table。 /*可能执行过多次put*/ map.put(key1,value1); 首先调用key1所在类的hashCo...
Java
哈希表
2022-01-21
1
328
KMP算法理论
KMP算法 KMP主要应用在字符串匹配的场景中,其思想是当出现字符串不匹配的情况时,可以知道一部分之前已经匹配的文本内容,利用这些信息避免从头再去做匹配。 next数组 next数组是一个前缀表,或者说是前缀表的某种变形。 为了讲清楚next数组的含义,先明确字符串的前缀、后缀的概念 1.前...
字符串
字符串匹配
Java
2022-01-20
2
529