基础算法
文章平均质量分 86
佑在继续前进
谢谢你的关注,我们一起进步!
展开
-
高精度计算
对于部分编程语言来说,数据是有存储范围的限制的。例如在Python中,数值的上限和下限都是无穷大,而在C++中,int的取值范围是−231231−1long long的取值范围是−263263−1显然,当我们使用C++计算时的结果超出了long long的取值范围时,我们将无法正确计算出想要的结果。因此需要使用高精度计算算法来进行大整数的计算。原创 2024-07-11 14:57:45 · 1077 阅读 · 0 评论 -
前缀和与差分
目录1. 算法原理2. 前缀和3. 差分 1. 算法原理 我们高中时学过数列的求和,例如给出一个数列ana_{n}an则该数列的前n项和为Sn=a1+a2+a3+⋯+anS_{n} =a_{1}+a_{2}+a_{3}+\dots+a_{n}Sn=a1+a2+a3+⋯+an 因此又有an=Sn−Sn−1a_{n} =S_{n}-S_{n-1}an=Sn−Sn−1 而前缀和与差分的算法思想正是与这两个公式类似。 2. 前缀和 前缀和指的是,对一个数组a[n],初始化其前缀和数组s[n],使得原创 2024-07-10 15:49:12 · 883 阅读 · 0 评论 -
二分查找与二分答案
要查找有序数组中的某一个元素,我们可以从头到尾遍历数组来枚举答案,令枚举空间为数组中的所有元素,如果当前元素不为所求元素,则从枚举空间中去除这一元素,继续枚举答案,直到找到正确答案为止。如果i < target,则有数组从第1位元素到第i位元素均小于target,一次枚举就可排除一个以上的元素,大大提高了枚举效率。前面提到,在用二分查找算法对枚举空间进行枚举时,需要根据当前枚举元素与目标值的关系来对枚举空间进行取舍。因此,为了使这种优化尽可能地有效,在每次枚举时,都令被枚举元素为当前枚举空间的。原创 2024-07-09 22:39:40 · 769 阅读 · 0 评论