- 博客(4)
- 收藏
- 关注
原创 双指针算法优化&例题
两个升序列有序数组A和B,以及目标值x,数组下标从0开始。求A[i] + B[j] == k 的 (i , j) 对 只有一组解。给定长度为n的整数序列,找出最长 不包含重复数字的连续子序列,输出长度。移动的速度一快一慢,以此来制造出自己想要的差值。核心:将O(n^2)算法优化到O(n)比如归并排序中合并两个有序序列的操作。数组目标元素的目标和。
2022-12-18 13:32:55 64 1
原创 二分查找算法模板&详解
给定一个按照升序排列的长度为 n 的整数数组,以及 q 个查询。对于每个查询,返回一个元素 k的起始位置和终止位置(位置从 0 开始计数)【思路】:在数组中查找某元素,找不到就输出-1,找到了就输出不小于该元素的最小位置和不大于该元素的最大位置。即,该区间内的元素可以划分为左右两侧,答案要么是左侧右端点,要么是右侧左端点。”:将区间用某条件一分为二, 保证区间中有答案。二分法的本质是寻找“
2022-12-16 16:32:32 77
原创 快速排序和归并排序模板&演示例题
基于’‘分治’': 分而治之,把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。给定长度为n的整数数列,对于数列中第i个元素和第j个元素,如果i< J 并且a[i] > a[j] 则成为逆序对。给定一个长度为 n 的整数数列,以及一个整数 k,请用快速选择算法求出数列从小到大排序后的第 k 个数。,复杂度为O(n+ n/2 + n/4+…
2022-12-15 19:10:46 157
原创 前缀和与差分算法详解
输入一个 n行m列的整数矩阵,再输入q个询问,每个询问包含四个整数x1,y1,x2,y2,表示一个子矩阵的左上角坐标和右下角坐标。接下来再输入 m个询问,每个询问输入一对l,r。输入长度为n序列,输入m次l,r,c,表示将序列中[l,r]之间的每个数加上c ,输出操作完的序列。,a数组变成 a[l] + c ,a[l+1] + c, a[n] + c;, a数组变成 a[r+1] - c,a[r+2] - c,a[n] - c;b[i][j]点+a[i][j]的值,下方,右方,右下方元素都-a[i,j]
2022-12-13 16:19:23 108 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人