
算法沉淀
文章平均质量分 96
沧浪之水!
你想拥有你从未拥有过的东西,那么你就要去做你从未做过的事情!
展开
-
算法沉淀五:位运算
给定一个数组,包含从 1 到 N 所有的整数,但其中缺了两个数字。2,3,4其实就是一类问题,本质就是一个哈希表,很多情况下就是一个数组。&上一个1,要么让第x位右移,要么让1左移,一般用右移x位, (n>>x)&1。如何表示-n:n的按位取反再加1,本质就是将最右侧的1的左边区域全部变成相反。:由于其他数字出现三次,该位的总次数对3取余即为唯一数字在该位的值(0或1)。n-1:将最右侧的1的右边的区域(包含1)全部取反。,因为有 2 个数字,所以所有的数字都在范围。2 是丢失的数字,因为它没有出现在。原创 2025-03-14 18:42:57 · 799 阅读 · 0 评论 -
算法沉淀四:前缀和
对于一个给定的数列,它的前缀和数列是这样构成的:前缀和数列的第n项等于原数列前n项的和。例如,有数列a = [1, 2, 3, 4],它的前缀和数列s中,主要用途是可以快速地计算数列中某个区间的和。如果想求数列a中从第m项到第n项(m \leq n)的和,利用前缀和可以通过s[n]-s[m - 1](当m > 1时)或者直接用s[n](当m = 1时)来快速得到结果,而不需要每次都从m项开始逐个相加到n项。还需从题目中发现它的奥秘!原创 2024-12-10 15:06:19 · 1086 阅读 · 0 评论 -
算法沉淀三:二分查找
什么是二分查找?二分查找(Binary Search),也叫折半查找,是一种在有序数组中查找特定元素的高效搜索算法。基本原理- 它每次比较中间元素与目标元素的大小关系,若中间元素等于目标元素,则查找成功;若中间元素大于目标元素,则在数组的左半部分继续查找;若中间元素小于目标元素,则在数组的右半部分继续查找。- 不断重复这个过程,直到找到目标元素或者确定目标元素不存在为止。适用条件- 数据结构必须是有序的,比如升序或降序排列的数组。时间复杂度。原创 2024-11-25 21:26:49 · 1140 阅读 · 0 评论 -
算法沉淀二:滑动窗口
顾名思义,滑动窗口,就是一个可变大变小的区间,左边为left, 右边为right,left 和 right 构成的一个区间,一直往后面遍历,实现O(n) 复杂度的一个算法。原创 2024-11-18 19:46:04 · 1087 阅读 · 0 评论 -
算法沉淀一:双指针
此章节介绍一些算法,主要从leetcode上的题来讲解,讲解内容为做题思路,附加代码。欢迎与我大家一起学习共同进步!沉淀!passion!双指针的常见形式有两种:对撞指针,快慢指针。原创 2024-11-16 21:18:08 · 1421 阅读 · 0 评论