LeetCode icon indicating copy to clipboard operation
LeetCode copied to clipboard

Results 35 LeetCode issues
Sort by recently updated
recently updated
newest added

## Quick Select * https://leetcode.com/problems/top-k-frequent-elements/editorial/ ## Quickselect (Hoare's selection algorithm) 1. [215. Kth Largest Element in an Array](https://leetcode.com/problems/kth-largest-element-in-an-array/) [讲解不错,算法实现简单易明白] 2. [347. Top K Frequent Elements](https://leetcode.com/problems/top-k-frequent-elements/)

Top Frequency: Top 10 1. [314. Binary Tree Vertical Order Traversal](https://leetcode.com/problems/binary-tree-vertical-order-traversal/) [BFS] 2. [1249. Minimum Remove to Make Valid Parentheses](https://leetcode.com/problems/minimum-remove-to-make-valid-parentheses/) [Stack] 1. [1963. Minimum Number of Swaps to Make the...

# Queue (队列) Queue是**线性表**的一种,在操作数据元素时,按照先进先出(First In First Out, FIFO)的规则。 **Queue的实现方式:** 队列的实现同样有两种方式:顺序存储和链式存储。两者的区别在于数据元素在物理存储结构上的不同。 1. 顺序存储 2. 链式存储 #### 1. 顺序存储 **顺序存储存在的问题:** 由于数组申请的空间有限,到某一时间点,就会出现`rear`队尾指针到了数组的最后一个存储位置,如果继续存储,由于`rear`指针无法后移,则会出错。 > 在数组中做删除数据元素的操作,只是移动了队头指针而没有释放所占空间。 顺序存储的升级版:使用数组存取数据元素时,可以将数组申请的空间想象成首尾连接的环状空间使用。 如何区分空队列和满队列的情况?办法是:牺牲掉一个存储空间 * 当队列为空时,尾指针`rear`等于头指针`front` * 当队列为满时,为指针`rear`的下一个位置等于头指针`front` #### 2. 链式存储...

如何取数组的中间值? **Method 1** ``` middle = (left + right) / 2; ``` * 局限:(left + right) 可能会出现溢出,从而造成错误 **Method 2** ``` middle = left + (right - left)/2; ``` * 避免了溢出的情况...

1. 冒泡排序 2. 插入排序 3. 选择排序 4. 希尔 Shell 排序 5. 快速排序 (Quick Sort) 6. 归并排序 (Merge Sort) 7. 堆排序 8. 线性排序算法 9. 自省排序 10. 间接排序 11. 计数排序 12. 基数排序...

回溯算法(backtracking)也叫试探法,它是一种系统地搜索问题解的方法。回溯算法的基本思想是:从一条路往前走,能进则进,不能进则退,换一条路再试。回溯算法其实就是穷举法。不过回溯算法使用剪枝函数,剪去一些不可能到达的最终状态的节点,从而减少状态空间树节点的生成。 Backtracking属于DFS。 * 普通的DFS主要用于**可达性问题**,这种问题只需要执行到特定点的位置然后返回即可。 * 而Backtracking主要用于**排列组合**问题,这种问题在执行到特定的位置之后还会继续执行求解过程。 因为Backtracking不是立即就返回,而要继续求解,因此在实现算法时,需要注意对元素的标记问题: * 在访问一个新元素进入新的递归调用时,需要将新元素标记为已经访问,这样才能在继续递归调用时不再重复访问该元素。 * 但是在递归返回时,需要将元素标记为未访问,因为只需要保证在一个递归链中不同时访问一个元素,可以访问已经访问过但是不在当前递归链中的元素。 **Reference:** * [算法思想 - 回溯算法](https://pdai.tech/md/algorithm/alg-core-backtracking.html) * [五大基本算法之回溯算法 backtracking](https://juejin.cn/post/7113160186977583134) * [回溯算法几种问题的复杂度分析](https://zhuanlan.zhihu.com/p/448969860) **Template:** ``` result = [] func backtrack(选择列表,路径): if 满足结束条件:...

* [五大基本算法之貪心算法](https://juejin.cn/post/7122623403269292046)