長度最小的子陣列

2021-10-08 13:17:00 字數 909 閱讀 8979

題目**於leetcode

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

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

輸出:2

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

暴力求解。

從陣列的每個索引開始,找到從當前索引 i 開始之後到索引 j 的值得和》=s,比較每個j-i+1的值,取最小。

class

solution

int result=integer.max_value;

for(

int i=

0;i}if

(result == integer.max_value)

else

return result;

}}

用雙指標來解決此題

定義start、end兩個指標,均初始化為0;

不斷移動end,比較start~end下的值之和sum與s的大小

當sum>=s,取得end-start+1並更新為最小值,此時令sum=sum-nums[start],並移動start,回到第二步,繼續判斷sum與s的大小。

class

solution

int ans = integer.max_value;

int start =

0, end =0;

int sum =0;

while

(end < n)

end++;}

return ans == integer.max_value ?

0: ans;

}}

長度最小的子陣列

方法 1 暴力 想法按照題目要求直接求。把所有可能的子陣列求和並更新 textans 直到我們找到最優子陣列且和滿足 text geq textsum s 演算法初始化 text textans int max 用變數 ii 從左到右遍歷陣列 用變數 jj 從當前元素到陣列尾部遍歷 將 ii 到 j...

長度最小的子陣列

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

長度最小的子陣列

問題 給定乙個含有 n 個正整數的陣列和乙個正整數 s 找出該陣列中滿足其和 s 的長度最小的連續子陣列。如果不存在符合條件的連續子陣列,返回 0。示例 輸入 s 7,nums 2,3,1,2,4,3 輸出 2 解釋 子陣列 4,3 是該條件下的長度最小的連續子陣列。分析 暴力法 求出每個子陣列的和...