![](https://i-blog.csdnimg.cn/direct/f75d18aae72e42618c1ef5634a7d270c.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法
文章平均质量分 94
算法内容
是小满满满满吗
主要记录学习历程,加油加油加油加油加油
展开
-
基础贪心算法集合(更新到20加油站)
贪心的点在于,如果是I,即这个数到下个数要增长,那么我们选取当前最小的那个数,可以使得出现增长的情况数目最多,同样,当我们判断到D,我们选取最大的那个数,可以使得出现减少的情况数目最多。这个数组的作用是记录最大的序列长度,比如说长度为1的序列末位置为2,4无法接在2后面,但是先前已经储存了接在3后面的序列了,就不需要担心序列长度丢失问题。2.n < k 先把数组中全部负数转换成正数,然后再计算k - n的值,如果为偶数,那么取正与取反抵消,如果为奇数,那么我们将最小的那个数取反即可。原创 2024-07-10 23:46:32 · 892 阅读 · 0 评论 -
滑动窗口(8题)
当left到right这段的子数组之和大于等于目标数时,再向后移动时,子数组的长度会更长,因此我们通过将left右移,判断能否减去一些较小的数,使范围内的子数组长度减小,但是仍然大于目标数。我们让left和right从下标为0处出发,让right不断右移,一直让left到right这段的子数组之和大于等于目标数。但也有可能,整个数组加起来都达不到目标数的大小,我们可以事先遍历判断,也可以判断ret是否被赋值过,来进行返回。比如 1 2 3 4 50 ,目标数为40.如例子 2 3 1 2 4 3。原创 2024-07-24 20:37:31 · 415 阅读 · 0 评论 -
基础动态规划算法集合(更新到22.乘积为正整数的最长子数组长度)
这里主要思路还是和19一样,分成* 两种********************但是如果nums[i]为负数,那么乘以一个大数反而变小了,因此需要分成nums[i]大于等于和小于0两种情况,两个dp表一个存最大值一个存最小值public:i原创 2024-07-10 10:35:20 · 993 阅读 · 0 评论 -
双指针(7题)
我们可以在图中看到,这个过程就是以一个值为起点,向后或者向下进行比较的结果,(最大的组合加粗)但是它只能保证这次比较的结果中它是最大,所以还需要和它之前的小组中最大值值进行比较。因为开始的时候startpos为0,endpos为-1,因此遍历结束时,startpos指向的是真正开始遍历的位置的下标+1.因此startpos--;因为有可能出现最后一位的值为0,但是所剩余的空格只有1,endpos+2后会出现越界,因此我们要进行判断,如果越界那么我们先进行处理。判断函数(i, j,k)原创 2024-07-22 23:32:05 · 778 阅读 · 0 评论