数据结构与算法 | 求TopK | 大根堆 解题思路:保持堆的大小为K,然后遍历数组中的数字,遍历的时候做如下判断: * 1. 若目前堆的大小小于K,将当前数字放入堆中。 * 2. 否则判断当前数字与大根堆堆顶元素的大小关系,如果当前数字比大根堆堆顶还大,这个数就直接跳过; * 反之如果当前数字比大根堆堆顶小,先poll掉堆顶,再将该数字放入堆中。 | Java最小堆解决TopK问题_最小堆 java-CSDN博客 (自己实现Heap) . - 力扣(LeetCode) (使用java中的PriorityQueue) |
反转字符串 | 循环或者递归两种方式 | https://segmentfault.com/a/1190000021422595 | |
求数组中第二大的数 | 求数组中第二大的数字-CSDN博客 | ||
LRU淘汰算法 | 双向链表+哈希表 哈希表可以降低查找的时间复杂度 | 算法|LRU淘汰算法 | |
布隆过滤器 | 由一个二进制数组和一个 Hash 算法组成。值按照提供的 Hash 算法算出对应的 Hash 值,然后将 Hash 值对数组长度取模后得到需要计入数组的索引值,并且将数组这个位置的值从 0 改成 1。在判断一个元素是否存在于这个集合中时,你只需要将这个元素按照相同的算法计算出索引值,如果这个位置的值为 1 就认为这个元素在集合中,否则则认为不在集合中。 | https://www.cnblogs.com/CodeBear/p/10911177.html | |
冒泡插入选择排序 | 数据结构与算法10-冒泡排序、插入排序、选择排序 | ||
快速排序、归并排序 | 数据结构与算法11-快速排序和归并排序 | ||
二分查找 | 二分查找相关算法 | ||
二叉树算法 | 二叉树相关算法 . - 力扣(LeetCode) | ||
图的深度和广度优先搜索 | 31 | 深度和广度优先搜索:如何找出社交网络中的三度好友关系?-数据结构与算法之美-极客时间 | ||
DualPivotQuicksort | DualPivotQuickSort 双轴快速排序 源码 笔记 - 简书 | ||
回溯算法 | 一种通过探索所有可能的候选解来找出所有的解的算法。如果候选解被确认不是一个解的话(或者至少不是最后一个解),回溯算法会通过在上一步进行一些变化抛弃该解,即回溯并且再次尝试。 | 39 | 回溯算法:从电影《蝴蝶效应》中学习回溯算法的核心思想-数据结构与算法之美-极客时间 | |
动态规划 | https://labuladong.gitbook.io/algo/dong-tai-gui-hua-xi-lie |