
数据结构与算法
文章平均质量分 94
数据结构与算法
热爱编程的林兮
静下心来,慢慢走就行,慢慢走,别停下!
展开
-
滑动窗口算法
在遍历数组或字符串时,我们可以维护一个窗口,通过移动窗口来寻找满足某些条件的子数组或子字符串。首先介绍一下什么是滑动窗口:滑动窗口算法是一种在数组或字符串中寻找特定模式的算法,它可以在 O(n) 的时间复杂度内解决一些字符串或数组相关的问题。在遍历数组或字符串时,我们可以维护一个窗口,通过移动窗口来寻找最长的连续子数组或子字符串。滑动窗口算法的基本思想是维护一个窗口,窗口内是需要处理的数据,每次移动窗口时,我们只需要计算新窗口与旧窗口的区别即可,这样可以大大减少计算量。初始化左右指针,表示窗口的左右边界。原创 2023-05-14 20:17:34 · 4755 阅读 · 77 评论 -
背包问题——01背包|完全背包
01背包你真的都会吗?各位佬们还不进来看看?原创 2023-04-21 16:58:11 · 33805 阅读 · 103 评论 -
HashSet和HashMap
HashMap集合是 Map接口的一个实现类,它用于存储键值映射关系,该集合的键和值允许为空,但键不能重复且集合中的元素是无序的。HashMap底层是由哈希表结构组成的,其实就是“数组+链表”的组合体,数组是HashMap的主体结构,链表则主要是为了解决哈希值冲突而存在的分支结构。正因为这样特殊的存储结构,HashMap集合对于元素的增、删、改、查操作表现出的效率都比较高。水平方向以数组结构为主体并在竖直方向以链表结构进行结合的就是 HashMap中的哈希表结构。原创 2022-11-21 15:11:21 · 3318 阅读 · 27 评论 -
蓝桥杯之素数及相关判断方法(看这一篇就够了)
素数又称质数。一个大于1的,除了1和它自身外,不能被其他自然数的数叫做素数;否则称为(规定1既不是质数也不是合数)。原创 2023-04-03 12:44:10 · 2166 阅读 · 27 评论 -
优先级队列
普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。在优先队列中,元素被赋予优先级。当访问元素时,具有最高优先级的元素最先删除。优先队列具有最高级先出 (first in, largest out)的行为特征。通常采用堆数据结构来实现。在下面这篇文章中讲解了堆。八大排序之选择排序_冷兮雪的博客-优快云博客的特性Java集合框架中提供了和两种类型的优先级队列,是线程不安全的,是线程安全的,本文主要介绍。PriorityQueue继承了。原创 2023-04-16 09:28:37 · 799 阅读 · 51 评论