
综合算法篇
文章平均质量分 78
涉及的算法题型:双指针、滑动窗口、二分查找、前缀和、位运算、快排分治……
WGzZsyu
感谢你的关注
展开
-
分治归并问题
别让自我被拯救~”当我们首次接触排序算法时,一定对所谓 "归并"方式排序的算法感到头疼~ 因为,我们难以形象出其不断 "分离"时,各个区域的状态。然而,即便 "归并"排序算法的学习是艰难,但掩盖不住其相较于其他算法而言,拥有更优时间复杂度,而迫使我们不得不盯着头疼的代码苦思冥想。并且,"归并"思想不仅仅体现在排序中,更能成为我们解决实际问题时的一个方略方法。归并核心之一就在于 "分治",那么啥子叫 "分治"?简单来说,就是 "分而治之,大事化小"。原创 2024-03-25 22:21:22 · 912 阅读 · 0 评论 -
贪心算法之合并区间
任世界多宽广,停泊在这港口~”区间问题,涉及到最多的就是 取交集 和 并集的概念。我们使用C++排序算法后,其默认规则就是按照 “左排序”进行的。因而,我们实质上注意的是每一个区间的 右端点,根据题目要求,总结规律,指定出策略解决问题。(1) 题目解析。原创 2024-02-17 18:46:38 · 1056 阅读 · 0 评论 -
贪心算法篇2
星辰野草,造出无边的天地~”(1) 题目解析。原创 2024-02-04 19:28:24 · 2110 阅读 · 1 评论 -
贪心算法篇
贪心算法简介?“靠漫步,将生趣填饱~”贪心算法简介?在每个决策点上都选择当下看似最好的选项,而不是寻求全局最优点贪心算法通常会逐步构建问题的解空间,每次尝试将下一个待选元素加入到解集中,直到无法再添加为止。这个过程会使得问题简化为一系列子问题,每个子问题都可以通过同样的贪婪策略来解决,从而逐步接近整体的最优解。原创 2024-02-03 19:59:27 · 3942 阅读 · 1 评论 -
FloodFill
FloodFill算法简介:"绝境之中才窥见,Winner,Winner"FloodFill算法简介:floodfill又翻译成漫水填充。我们可以将下面的矩阵理解为一片具有一定高度的坡地,此时突发洪水,洪水会将高度原创 2023-11-26 21:24:42 · 235 阅读 · 0 评论 -
快速选择排序
这份快排算法代码在面对大量重复数的时候,时间复杂度会下降到O(n^2),这也是为什么leetcode显示最后会超时。也许在此之前,可以先回顾回顾快排三步核心算法步骤。前些天有些无聊,想试试自己写的快排能否过leetcode上的排序算法题。结果是,不用截图可想而知,肯定是没过的,否则也不会有这篇文章的产出。"你经过我每个灿烂时刻,我才真正学会如你般自由"原创 2023-10-03 22:23:58 · 360 阅读 · 0 评论 -
专题五:优先级队列
如何实现一个堆排序?"你了解我,最干净的轮廓, 握住小小风车和放肆的梦~"堆是一个不错的数据结构,而在计算机中,无法表示二叉分支结构,因此我们经常会看到使用线性表来作为堆的存储容器。在接触堆的时候,我们是把它拿来同其他排序算法来看待的,但其实我们经常使用的是快排或者归并亦或者性能更加优越的"选择快排"。堆的应用场景,实质上转移到了查找问题,例如TopK等。很多语言也提供了以堆为底层的数据结构,例如C++中的priority_queue,Java中的如何实现一个堆排序?原创 2023-09-29 12:16:33 · 168 阅读 · 0 评论 -
算法综合篇专题四:前缀和
"回忆里的我,比国王富有。奢侈的快乐~"(1) 题目解析(2) 算法原理。原创 2023-09-12 20:44:22 · 243 阅读 · 0 评论 -
算法综合篇专题三:二分法
现在你有一个"升序"数组,想让你在这个数组里完成查找数字n,在这个数组内的下标,你可以怎么做?你可以使用O(N)的时间复杂度,对该数组进行遍历,就像这样。可是我们没有很好地利用到数组“有序”的特点,我们可以令数字为mid,那么借着有序的特点,可以将这个数组划分为两个区域,一边是小于mid的数,一边是大于mid的数。所以,按照这样的算法查找数组中的某个数,时间复杂度可以下降为O(logN),是一个特别大的提升,但使用这个算法的前前提的 “数组有序”。"寻一颗,未萌的渺小啊,随着青翠未来,升入辽阔云霄~"原创 2023-09-12 08:55:56 · 229 阅读 · 0 评论 -
算法综合篇专题二:滑动窗口
在混沌想法中,最不可理喻念头。(1) 题目解析。原创 2023-08-02 02:15:57 · 370 阅读 · 1 评论 -
算法综合篇专题一:双指针问题
"就算没有看清那株灿烂的花蕊,也应该放声歌颂赞美鲜红的玫瑰"(1) 题目解析。原创 2023-07-31 20:40:00 · 328 阅读 · 0 评论