公司名称可以和网站域名不同吗,linux 中 wordpress,建设厅企业锁在哪个网站登录,魔兽7.2国内做插件网站// 单调栈// 维护一个具有栈单调性的队列#xff0c;跟动态规划不一样的是时间复杂度为O(n)// queue[i]中存放着前缀和// 我们知道因为负数的存在#xff0c;所以队列不是单调增长的#xff0c;但是不单调的其实对我们没有用// 因为肯定可以找到比它短的(因此我们移除比)// …// 单调栈// 维护一个具有栈单调性的队列跟动态规划不一样的是时间复杂度为O(n)// queue[i]中存放着前缀和// 我们知道因为负数的存在所以队列不是单调增长的但是不单调的其实对我们没有用// 因为肯定可以找到比它短的(因此我们移除比)// opt(y)表示比固定的y最大的满足条件的x因此y - x的最大值就是我们要的值// 这个递增的队列// 我们首先建立一个单调增栈// 出栈则代表碰到了合适的值。因此记录大小// 其实我更感觉是具有单调性质的滑动窗口呢。。。。。func shortestSubarray(A []int, K int) int {prefixSum : make([]int, len(A)1)shLen : math.MaxInt32for i, a : range A {prefixSum[i1] prefixSum[i] a}queue : make([]int, 1, len(prefixSum))for i : 1; i len(prefixSum); i {for len(queue) 0 prefixSum[queue[len(queue)-1]] prefixSum[i] {queue queue[:len(queue)-1]}queue append(queue, i)diff : prefixSum[queue[len(queue)-1]] - Kfor len(queue) 1 diff prefixSum[queue[0]] {l : i - queue[0]if l shLen {shLen l}queue queue[1:]}}if shLen math.MaxInt32 {return -1}return shLen}