LeetCode 长度最小的子数组
2024-08-23 08:23:48
题目:
给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组,并返回其长度。如果不存在符合条件的连续子数组,返回 0。
思路:
非常明显用滑动窗口处理
时间复杂度O(n)
代码:
public int minSubArrayLen(int s, int[] nums) {
int n = nums.length;
if(n == 0){
return 0;
}
int lo = 0;
int hi = 0;
int sum = 0;
int res = Integer.MAX_VALUE;
for(int i = 0;i<n;i++){
sum += nums[i];
hi++;
if(sum>=s){
res = res<=hi-lo?res:hi-lo;
while(sum>=s){
res = res<=hi-lo?res:hi-lo;
sum -= nums[lo++];
}
}
}
return res+1<0?0:res;
}
法二:前缀数组+二分查找
法三:双指针(道理同法一)
最新文章
- Virtual Box 下Ubuntu桥接网络设置
- IPython, Notebook, NumPy, SciPy, matplotlib 和其它
- C#设置字体(FontDIalog)、颜色(ColorDialog)对话框控件
- Editplus配置VC++(1) 及相关注意事项
- Python 上传和更新函数模块到PyPI
- mysql 常用sql操作语句
- ASDL + WN725N 配置无线AP
- Android_Toast
- 【BZOJ 3529】 [Sdoi2014]数表 (莫比乌斯+分块+离线+树状数组)
- Visual Studio 调试技巧 (三) -- 调试第三方组件代码
- 使用AsyncHttpClient碰到的问题及解决方法
- (困难) CF 484E Sign on Fence,整体二分+线段树
- python中input()与raw_input()的区别到底是啥?-----marsggbo原创作品为你解答
- 探索Windows命令行系列(5):几个实用的命令例解
- Apache服务器安装-apache已经卸载,如何删除注册在系统的服务
- 优先级队列用法详解(priority_queue)
- Servlet&#160;CDI&#160;Example&#160;Analysis
- R8500 MPv2 版本 刷 Kong编译的 ddwrt 后,使用Entware-ng 安装opkg安装第三方软件
- 物联网架构成长之路(22)-Docker练习之Etcd服务搭建
- 登录iOS Dev Center