算法刷题
文章平均质量分 93
anshiquanshu
这个作者很懒,什么都没留下…
展开
-
回溯算法的题目,这样做,效果看的见
这一篇文章来讲解一下如何做leetcode回溯算法题目,这一段时间我把leetcode上面的回溯算法的题目都刷了个遍,发现了其中一些规律,所以,就想写一篇文章来总结一下,怕以后忘记。刷完回溯算法的题目,我发现其实可以总结为三大类:子集问题、组合问题、排列问题,那这三大类都是什么意思呢,我分别举一个例子来说明。子集问题,比如说,数组[1,2,3],那么对应的子集问题就是,这个数组的子集有:[],[1],[2],[3],[1,3],[2,3],[1,2],[1,2,3],这就是这个数组的子集,这一类问题转载 2022-04-01 21:50:18 · 77 阅读 · 0 评论 -
如何写出正确的二分查找?——利用循环不变式理解二分查找及其变体的正确性以及构造方式
序言 本文以经典的二分查找为例,介绍如何使用循环不变式来理解算法并利用循环不变式在原始算法的基础上根据需要产生算法的变体。谨以本文献给在理解算法思路时没有头绪而又不甘心于死记硬背的人。 二分查找究竟有多重要?《编程之美》第2.16节的最长递增子序列算法,如果想实现O(n2)到O(nlogn)的时间复杂度下降,必须借助于二分算法的变形。其实很多算法都是这样,如果出现了在有序序列中转载 2017-07-18 22:16:14 · 533 阅读 · 0 评论 -
巧用循环不变式书写正确的二分查找算法
1.二分查找介绍在进行开始之前,我们县要来正确的认识一下什么是二分查找算法上过数值分析这门课的同学一定在迭代那一刻里面清楚的了解过一个名词叫做对分法实际上,对分法的本质就是二分查找下面我们来介绍一下二分查找算法Binary-Search是不同于顺序扫描的一种极其高效的查找算法首先我们县要来了解一下二分查找算法相对于朴素的顺序查找算法的优劣转载 2017-07-19 17:04:57 · 587 阅读 · 0 评论