博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
209. 长度最小的子数组
阅读量:4028 次
发布时间:2019-05-24

本文共 538 字,大约阅读时间需要 1 分钟。

给定一个含有 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组如果不存在符合条件的连续子数组,返回 0。

示例: 

输入: s = 7, nums = [2,3,1,2,4,3]输出: 2解释: 子数组 [4,3] 是该条件下的长度最小的连续子数组。

进阶:

如果你已经完成了O(n) 时间复杂度的解法, 请尝试 O(n log n) 时间复杂度的解法。

 

思路:设置左右滑动指针,一开始两个指针都处于数组左边,不断右移右指针,直到子序列和大于等于s,接下来我们在此基础上尽可能缩短序列的长度,不断向右滑动左指针,更新连续子数组长度最小值

class Solution {public:    int minSubArrayLen(int s, vector
& nums) { int i=0, j=0, re=INT_MAX, sum=0; while(j
=s){ re=min(re, j-i); sum-=nums[i++]; } } return re

 

转载地址:http://iqabi.baihongyu.com/

你可能感兴趣的文章
微服务架构的设计模式
查看>>
持续可用与CAP理论 – 一个系统开发者的观点
查看>>
nginx+tomcat+memcached (msm)实现 session同步复制
查看>>
c++指针常量与常量指针详解
查看>>
c++字符数组和字符指针区别以及str***函数
查看>>
c++的string类初始化及其常用函数
查看>>
c++类的操作符重载注意事项
查看>>
c++模板与泛型编程
查看>>
STL::deque以及由其实现的queue和stack
查看>>
CS4344驱动
查看>>
WAV文件解析
查看>>
DAC输出音乐2-解决pu pu 声
查看>>
WPF中PATH使用AI导出SVG的方法
查看>>
WPF UI&控件免费开源库
查看>>
QT打开项目提示no valid settings file could be found
查看>>
Win10+VS+ESP32环境搭建
查看>>
Ubuntu+win10远程桌面
查看>>
flutter-实现圆角带边框的view(android无效)
查看>>
flutter-实现一个下拉刷新上拉加载的列表
查看>>
android 代码实现圆角
查看>>