209. 长度最小的子数组 C#实现

  1. 长度最小的子数组

给定一个含有 n个正整数的数组和一个正整数 target。

找出该数组中满足其总和大于等于target的长度最小的

子数组

[numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度**。** 如果不存在符合条件的子数组,返回 0 。

示例 1:

复制代码
输入:target = 7, nums = [2,3,1,2,4,3]
输出:2
解释:子数组 [4,3] 是该条件下的长度最小的子数组。

示例 2:

复制代码
输入:target = 4, nums = [1,4,4]
输出:1

示例 3:

复制代码
输入:target = 11, nums = [1,1,1,1,1,1,1,1]
输出:0

提示:

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

进阶:

  • 如果你已经实现O(n) 时间复杂度的解法, 请尝试设计一个 O(n log(n)) 时间复杂度的解法。

    public class Solution {
    public int MinSubArrayLen(int target, int[] nums) {
    int left = 0, sum = 0, minLength = int.MaxValue;

    复制代码
          for (int right = 0; right < nums.Length; right++)
          {
              sum += nums[right];
    
              // 当当前和大于等于目标时,收缩窗口
              while (sum >= target)
              {
                  minLength = Math.Min(minLength, right - left + 1);
                  sum -= nums[left];
                  left++;
              }
          }
    
          return minLength == int.MaxValue ? 0 : minLength;
      }

    }

相关推荐
一去不复返的通信er1 分钟前
力扣15:盛最多水的容器
算法·leetcode
He BianGu2 分钟前
【WPF-Control教程】H.Extensions.Behvaiors 开发文档
c#·wpf·wpf-control
Navigator_Z4 分钟前
LeetCode //C - 1309. Decrypt String from Alphabet to Integer Mapping
c语言·算法·leetcode
潇湘秦8 分钟前
SQL Server 2016+ 整数类型元数据扩宽(秒级变更)完整说明
数据库·算法
小白起 v28 分钟前
02-数组与链表
数据结构·链表
He BianGu29 分钟前
【WPF-Control教程】H.Style 开发文档
c#·wpf·wpf-control
He BianGu1 小时前
【WPF-Control教程】MVVM 二次开发文档
c#·wpf·wpf-control
He BianGu1 小时前
【WPF-Control教程】Theme 主题系统二次开发文档
c#·wpf·wpf-control
iCxhust1 小时前
C#双时区时钟设计
开发语言·c#
Figo_Cheung1 小时前
Figo基于结构空间算法假设(SSAH)的生成式大模型优化范式与工程实现边界研究——提出适应AGI架构演化的自适应拓扑感知表征机制
算法·架构·agi