- 2024-06-04(nice!!!)LeetCode 3097. 或值至少为 K 的最短子数组 II(位运算、滑动窗口)
3097.或值至少为K的最短子数组II思路:既然求的是区间,那么我们自然就想到前缀和、滑动窗口、双指针。结合本题的特点:或运算,会发现如果一段连续的区间进行或运算,最多只会有32次运算可以改变,这是因为int型的二进制范围是-2^31~2^31-1,每次增加一个二进制形式的1。所
- 2023-10-24C++前缀和算法应用:和至少为 K 的最短子数组的原理、源码及测试用例
题目给你一个整数数组nums和一个整数k,找出nums中和至少为k的最短非空子数组,并返回该子数组的长度。如果不存在这样的子数组,返回-1。子数组是数组中连续的一部分。示例1:输入:nums=[1],k=1输出:1示例2:输入:nums=[1,2],k=4输出:-1示例3:输入:nums=
- 2023-06-07LeetCode 862.和至少为k的最短子数组
LeetCode862.和至少为k的最短子数组本题前缀和队列并不单调,所以应该算变种单调队列,在计算出单调队列以后还要进行进一步优化,即在如下条件如果我们找到当前的s[i]满足条件,则说明之后选取的s[i]不管是多少,均没有当前s[i]距离s[j]近,所以在此以后的值均可以丢弃,同理,s[j]之前的值也是
- 2023-02-27leetcode 862. 和至少为 K 的最短子数组
一个双端单调队列:如果新加入的数比队列尾的数小,那么队列尾的数就可以丢去,这是因为如果未来的一个数能和队列尾的数满足条件,那么也一定可以和新加入的数满足条件。另外,如果
- 2022-10-29862. 和至少为 K 的最短子数组 : 前缀和 + 离散化 + 权值树状数组
题目描述这是LeetCode上的863.二叉树中所有距离为K的结点,难度为困难。Tag:「前缀和」、「离散化」、「二分」、「树状数组」给你一个整数数组nums
- 2022-10-26Leetcode第862题:和至少为K的最短子数组(Shortest Subarray with sum at least k)
解题思路前缀和定义前缀和\(s[0]=0\),\(s[i+1]=\displaystyle\sum\limits_{j=0}^inums[j]\)。例如\(nums=[1,2,-1,2]\),对应的前缀和数组为\(s=[0,1,3,2,4]\)。
- 2022-10-26862. 和至少为 K 的最短子数组
862.和至少为K的最短子数组给你一个整数数组nums和一个整数k,找出nums中和至少为k的最短非空子数组,并返回该子数组的长度。如果不存在这样的子数组,返回-1