![](https://img-blog.csdnimg.cn/b5340b94285d4866981ca1c94f81fd5e.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法
文章平均质量分 74
LeetCode算法刷题、常用算法模板、以及遇到的其他算法题目
ZBH4444
这个作者很懒,什么都没留下…
展开
-
二叉树的非递归遍历(前序、中序、后序多种方法)
总结了二叉树的非递归遍历的前序、中序、后序三种方式的多种方法,同时实现了深度优先遍历与广度优先遍历的统一。原创 2022-09-19 02:37:38 · 760 阅读 · 1 评论 -
堆的各种操作与堆排序 Java&Golang
本文以大顶堆为例,给出堆中各种常见的操作与堆排序的 Java 代码,并附带以面向对象原则实现的 Golang 版本的代码。原创 2022-07-26 00:30:41 · 168 阅读 · 0 评论 -
《剑指offer》所有题目解法思路与出现频率汇总
本文并不适用于初次学习这本书中的题目,而是适用于在已经做过这些题目之后来进行复习。同时,这里统计了每个题目在面试中出现的频率,可以根据情况分重要性进行复习。原创 2022-07-18 23:24:38 · 273 阅读 · 0 评论 -
下一个排列(双指针)
使用双指针解法,并在最后的反转步骤重用两个指针,使得空间开销最低。该解法也可在一些其他题目中作为工具函数使用,如在题目[剑指 Offer 38. 字符串的排列]中使用该方法要比使用普通的回溯解法简单很多。...原创 2022-07-14 20:12:28 · 109 阅读 · 0 评论 -
不用加减乘除做加法 从递归到迭代
该题目直接看最优的迭代解法很难看懂,因为没有一个递进理解的过程,所以需要先从简单的递归开始理解,然后再改进为更优的迭代解法。原创 2022-07-11 21:30:44 · 226 阅读 · 0 评论 -
栈的压入、弹出序列 不用栈模拟的解法 空间复杂度O(1)
该题目大部分答案都是使用栈模拟的方法,但是这样需要额外使用一个栈,不仅需要 O(n) 的空间复杂度,还会因大量的入栈和出栈操作导致时间消耗很高。这里给出一个空间复杂度为 O(1) 的解法,只需要三个指针,直接在输入的数组上用三个指针模拟入栈与出栈,这样不仅额外空间消耗极少,而且指针操作的时间消耗也远小于使用栈模拟的方式,在 LeetCode 上的执行用时为 0 ms(栈模拟的方法大部分都是用时 1 ms)。...原创 2022-06-20 19:55:42 · 146 阅读 · 0 评论 -
Java二分查找模板
二分查找模板和一个它的一个有用的变体的模板原创 2022-06-01 17:03:14 · 260 阅读 · 0 评论 -
给定N个物品的背包问题-动态规划
给定 NNN 个物品,所有物品的体积恰有 KKK 种 (K≤N)(K \leq N)(K≤N),第 iii 种物品的体积为 Vi(0<Vi<1)V_i (0 < V_i < 1)Vi(0<Vi<1) 且第 iii 种物品的个数为 Ni(1≤i≤K)N_i(1 \leq i \leq K)Ni(1≤i≤K),其中 N1+N2+⋯+Nk=NN_1 + N_2 + \dots + N_k = NN1+N2+⋯+Nk=N。现有无穷多个体积为 1 的箱子,要将这 NNN原创 2022-05-25 03:22:46 · 914 阅读 · 0 评论 -
动态规划题目汇总(持续更新)
动态规划题目汇总(持续更新)原创 2022-05-25 00:55:59 · 2817 阅读 · 0 评论 -
圆圈中最后剩下的数字(约瑟夫环问题)
0,1,···,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字(删除后从下一个数字开始计数)。求出这个圆圈里剩下的最后一个数字。例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。...原创 2022-07-08 21:33:31 · 2614 阅读 · 0 评论 -
Java快速排序模板(多种pivot选取方法)
快速排序模板,简洁、好记。partition函数中的左右指针最后总是相等,因而鲁棒性强,可扩展性好,可在很多算法中复用。同时,给出可以随意更换pivot的选取方法的模板,只要改写findPivot()函数就可以随意更换不同的pivot的选取方法,具有很好的可扩展性。......原创 2022-06-23 23:14:17 · 626 阅读 · 0 评论 -
Java归并排序模板
归并排序模板,简洁、好记原创 2022-06-28 21:13:55 · 208 阅读 · 0 评论 -
二叉搜索树的后序遍历序列(辅助栈 最清晰易懂的可视化讲解)
二叉搜索树的后序遍历序列(辅助栈 最清晰易懂的可视化讲解) 从可视化角度进行分析,最清晰直白的思路,最简洁的代码实现原创 2022-05-11 02:05:44 · 3244 阅读 · 6 评论 -
K个一组翻转链表 最易懂的递归与迭代解法
这个题目大部分答案非常复杂难懂,勉强看懂了也很难复现出来,复现出来也很难记住。这里先给出一个递归解法,简单易懂,容易记住,也容易实现;进而给出一个更优的迭代解法。原创 2022-07-07 16:15:20 · 333 阅读 · 0 评论