算法
文章平均质量分 91
开压路机
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
算法:分治-快速排序
本文介绍了四种基于三路划分的排序与选择算法:1.颜色分类算法通过划分0、1、2三个区域实现O(n)时间复杂度排序;2.三路快速排序利用随机枢轴和区间划分实现高效排序;3.快速选择算法通过三路划分在O(n)时间内寻找第k大元素;4.库存管理问题采用类似快速选择的方法获取前k小元素。这些算法都利用了区间划分的思想,通过维护多个指针来高效处理元素分组,其中随机化枢轴选择和三路划分特性使其在处理重复元素时表现优异,平均时间复杂度为线性或准线性。原创 2025-08-01 18:07:56 · 575 阅读 · 0 评论 -
算法:模拟
'a''z'???原创 2025-06-09 21:53:02 · 1102 阅读 · 0 评论 -
算法:位运算
: 有0就是0。|:有一就是一^:相同为0,相异为1。哈希表中里面开32个空间n & (-n)。将最右侧的1,左边的区域全部变成相反的。原创 2025-06-08 21:11:47 · 759 阅读 · 0 评论 -
算法:前缀和
这道题如果使用暴力解法时间复杂度为O(n*m),会超时,所以要使用前缀和算法。前缀和->快速求出数组中某一个连续区间的和。第一步:预处理出一个前缀和数组 dp。dp[i]表示[1, i] 区间内所有元素的和,dp[i] = dp[i - 1] + arr[i]。第二步:使用前缀和数组要求[l, r] 区间的值,就等于dp[r] - dp[l - 1]。原创 2025-06-05 17:47:37 · 1220 阅读 · 0 评论 -
算法:二分查找
34. 在排序数组中查找元素的第一个和最后一个位置 - 力扣(LeetCode)用二分查找解决,要查找一个区间要找去左端点和右端点。1. 查找区间的左端点细节处理:1.循环条件 left < right而不是left <= right ,因为left == right 的时候就是最终结果,无需判断。原创 2025-06-02 12:26:36 · 937 阅读 · 0 评论 -
算法:滑动窗口
数据污染当处理完偏移量i=0后,hash2会保留窗口中的单词频次。当处理i=1单词频次统计错误(包含前一轮的数据)count计数器失效(累计了无效计数)public://保存words里面所以单词的频次hash1[e]++;i < len;i++)//执行len次,因为words字符串出现的地方不一定是len整数倍的地方//维护窗内单词的频次//进窗口count++;if(right - left + 1 > len * m)//判断count--;//出窗口。原创 2025-05-31 23:15:49 · 1374 阅读 · 0 评论 -
算法专题:双指针
双指针算法两个指针的作用:cur:从左向右遍历数组 dest:已处理区间内非零元素的最后一个位置。非零元素0待处理cur遍历过程中遇到0元素cur++,遇到非0元素交换cur和dest+1位置的值,dest++和cur++原创 2025-04-12 20:06:58 · 964 阅读 · 0 评论
分享