当前位置: 首页 > news >正文

leetcode209. Minimum Size Subarray Sum

题目

Given an array of positive integers nums and a positive integer target, return the minimal length of a
subarray
whose sum is greater than or equal to target. If there is no such subarray, return 0 instead.

Example 1:

Input: target = 7, nums = [2,3,1,2,4,3]
Output: 2
Explanation: The subarray [4,3] has the minimal length under the problem constraint.
Example 2:

Input: target = 4, nums = [1,4,4]
Output: 1
Example 3:

Input: target = 11, nums = [1,1,1,1,1,1,1,1]
Output: 0

Constraints:

1 <= target <= 109
1 <= nums.length <= 105
1 <= nums[i] <= 104

Follow up: If you have figured out the O(n) solution, try coding another solution of which the time complexity is O(n log(n)).

解法分析

可以用暴力解法来进行
时间复杂度是n方

也可以用双指针滑动窗口来进行
时间复杂度是n

但是这题还提供了一个深入的跟进思考
建议再想一个时间复杂度是nlogn的方法

暴力解法在leetcode中会超时

该题需要考虑边界条件以及双循环变量使用时数组的边界越界问题

暴力解法

class Solution {
public:int minSubArrayLen(int target, vector<int>& nums) {int max = 0;for(int i = 0; i < nums.size(); i++){max += nums[i];}if(target > max)return 0;else if(target == max)return nums.size();else{int subl;  // minimum is 1int sum;int minl = 100000;for(int i = 0; i < nums.size(); i++){int j = i;subl = 1;sum = 0;sum += nums[i];while(sum < target && j < nums.size()){if(j == nums.size()-1)break;j++;sum += nums[j];subl++;}if(sum >= target){if(subl == 1)return 1;if(subl <= minl)minl = subl;}}return minl;}}
};

双指针滑动窗口解法


http://www.mrgr.cn/news/17894.html

相关文章:

  • Spring扩展点系列-InstantiationAwareBeanPostProcessor
  • 原码 / 反码 / 补码的介绍及认知
  • Python测试开发基础(三)---random模块
  • SQLi-LABS靶场56-60通过攻略
  • 【网络基础】探索 NAT 技术:IP 转换、NAPT、NAT穿越及代理服务器
  • Windows 11家庭中文版中管理员阻止运行应用程序的问题
  • C++第四十四弹---Lambda表达式的妙用:高效解决编程中的匿名函数问题
  • 去中心化身份验证:Web3时代数字身份的革新
  • Python测试开发基础(一)
  • Ascend显卡创建虚拟vgpu实例
  • 安防监控视频打手机检测算法核心技术打手机检测算法源码、模型简介
  • C++多线程
  • 云原生主键模型:高效、弹性,省钱又省心
  • Oracle rac模式下undo表空间爆满的解决
  • 全流程SWAP农业模型数据制备、敏感性分析及气候变化影响实践技术应用
  • C++ 编译三环节
  • centos8 install .net8
  • 前端vue中怎么判断接口请求返回的时长
  • 页面滚动到指定位置——记录div滚动高度,并下次自动滚动到该位置
  • Shopee、Lazada等跨境平台如何获取优质的评价?