题解 | #和大于等于K的最短子数组#

和大于等于K的最短子数组

https://www.nowcoder.com/practice/3e1fd3d19fb0479d94652d49c7e1ead1

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums int整型ArrayList 
     * @param k int整型 
     * @return int整型
     */
    public int shortestSubarray (ArrayList<Integer> nums, int k) {
        // write code here
        int left=0,right=0;//左右指针
        int minLength = Integer.MAX_VALUE;//记录大于等于k的数组的最小长度
        int sum=0;//记录当前子数组元素之和
        for(right=0;right<nums.size();right++){//右指针从0最终移动到数组尾部
            sum+=nums.get(right);
            while(left<=right && sum>=k){//子数组之和大于等于k,左指针就可以右移
                minLength = Math.min(minLength,right-left+1);
                sum-=nums.get(left++);

            }
        }
        return minLength==Integer.MAX_VALUE?-1:minLength;//-1表示没有满足条件的子数组

    }
}

全部评论

相关推荐

点赞 评论 收藏
分享
05-07 17:58
门头沟学院 Java
wuwuwuoow:1.简历字体有些怪怪的,用啥写的? 2.Redis 一主二从为什么能解决双写一致性? 3.乐观锁指的是 SQL 层面的库存判断?比如 stock > 0。个人认为这种不算乐观锁,更像是乐观锁的思想,写 SQL 避免不了悲观锁的 4.奖项证书如果不是 ACM,说实话没什么必要写 5.逻辑过期时间为什么能解决缓存击穿问题?逻辑过期指的是什么 其实也没什么多大要改的。海投吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务