和至少为 K 的最短子数组(双端队列实现单调栈)leetcode862
思路::
1、首先求数列的前缀和 S[n] 则任意一段的子序列和S[a,b]=s[b]-s[a-1]
2、用双端队列维护这样一个单调栈 假设i<j<k, 且s[i]>s[j] 则
a. if s[k]-s[i]>=K →s[k]-s[j]>=k,因此此时的s[i]可以被丢弃 b.有贪心思想可知 这个序列不可能以负数或0开头或者结尾 所以如果存在s...
原创
2019-02-17 16:50:10 ·
473 阅读 ·
0 评论