1. 程式人生 > 實用技巧 >Myna for Google Translate Mac(Google Translate桌面客戶端)

Myna for Google Translate Mac(Google Translate桌面客戶端)

給定一個含有n個正整數的陣列和一個正整數s ,找出該陣列中滿足其和≥ s的長度最小的連續子陣列,並返回其長度。如果不存在符合條件的子陣列,返回 0。

示例:

輸入:s = 7, nums = [2,3,1,2,4,3]
輸出:2
解釋:子陣列[4,3]是該條件下的長度最小的子陣列。

進階:

  • 如果你已經完成了O(n) 時間複雜度的解法, 請嘗試O(nlogn) 時間複雜度的解法。

class Solution {
public:
    int minSubArrayLen(int s, vector<int>& nums) {
        if (nums.empty()) return
0; int left = 0, right = 0, sum = 0, len = nums.size(), res = len + 1; while (right < len) { while (sum < s && right < len) { sum += nums[right++]; } while (sum >= s) { res = min(res, right - left); sum
-= nums[left++]; } } return res == len + 1 ? 0 : res; } };