209 長度最小的子陣列

2021-10-07 19:48:17 字數 730 閱讀 3002

題目描述:

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

示例:

輸入:s = 7, nums = [2,3,1,2,4,3]

輸出:2

解釋:子陣列 [4,3] 是該條件下的長度最小的子陣列。

高階:

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

方法1:雙指標

主要思路:

(1)這個和盛水最多 類似,只不過是將兩個指標都指向開頭的位置,逐漸的向後移動;

(2)若當前的子陣列的和大於等於 s,則將作指標向後移動,減少陣列的長度,子陣列的和,找出滿足要求的最小的長度,知道再次小於s;

(3)若當前子陣列的和小於s,既為正常的需要擴大子陣列的範圍,增大子陣列的和,既將右指標向後移動;

(4)最後輸出結果時,先判斷儲存結果的變數是否改變過,若沒有改變過,則返回0,若改變過,則返回該變數;

class

solution

++right;

}//返回結果

return res==int_max?

0:res;}}

;

209 長度最小的子陣列

給定乙個含有 n 個正整數的陣列和乙個正整數 s 找出該陣列中滿足其和 s 的長度最小的連續子陣列。如果不存在符合條件的連續子陣列,返回 0。示例 輸入 s 7,nums 2,3,1,2,4,3 輸出 2 解釋 子陣列 4,3 是該條件下的長度最小的連續子陣列。高階 如果你已經完成了o n 時間複雜...

209 長度最小的子陣列

給定乙個含有 n 個正整數的陣列和乙個正整數 s 找出該陣列中滿足其和 s 的長度最小的連續子陣列。如果不存在符合條件的連續子陣列,返回 0。示例 輸入 s 7,nums 2,3,1,2,4,3 輸出 2 解釋 子陣列 4,3 是該條件下的長度最小的連續子陣列。高階 如果你已經完成了o n 時間複雜...

209 長度最小的子陣列

給定乙個含有 n 個正整數的陣列和乙個正整數 s 找出該陣列中滿足其和 s 的長度最小的連續子陣列。如果不存在符合條件的連續子陣列,返回 0。示例 輸入 s 7,nums 2,3,1,2,4,3 輸出 2 解釋 子陣列 4,3 是該條件下的長度最小的連續子陣列。高階 如果你已經完成了o n 時間複雜...