package 剑指Offer.第二章数组.和大于或等于k的最短子数组;
/**
* @program:多线程和IO
* @descripton:正整数数组和一个正整数k,数组中和大于或等于k的连续子数组的最短长度是多少?
* @若无,返回0;
* @author:ZhengCheng
* @create:2021/9/26-16:57
**/
public class MinlengthArr {
public int minlength(int[] arr ,int k){
int i = 0;//两个指针
int j = 1;
int temp = arr.length;//记录个数
int sum = 0;
if (arr[i] >= k){
return 1;
}
while (j < arr.length && i <= j){
sum += arr[j];
if (sum >= k){
if (temp < j-i+1){
temp = j-i+1;
}
sum -= arr[i++];
}else {
j++;
}
}
return temp == arr.length? 0 : temp;
}
}
剑指offer- 和大于或等于k的最短子数组
最新推荐文章于 2024-01-11 16:07:46 发布
该篇博客介绍了如何使用Java编程解决一个关于数组的问题,即给定一个正整数数组和一个目标值k,求和大于或等于k的最短连续子数组长度。通过双指针技巧,博主展示了如何在O(n)时间内找到答案,如果不存在符合条件的子数组,则返回0。
1239

被折叠的 条评论
为什么被折叠?



