題目:
給定乙個含有n個正整數的陣列和乙個正整數s ,找出該陣列中滿足其和≥ s的長度最小的連續子陣列。如果不存在符合條件的連續子陣列,返回 0。
示例:
輸入:解答:s = 7, nums = [2,3,1,2,4,3]
輸出:2解釋:子陣列[4,3]
是該條件下的長度最小的連續子陣列。
思路:用i從左到右遍歷陣列,用j從當前元素到陣列尾部遍歷,將i到j之間的數求和得到sum;如果sum比s大,則將個數儲存下來;
最後比較所有可能的結果,取最小那乙個;
class solution }}
if(!res.empty())
else
return 0;
}};
以上演算法上就不是很好,而且在**實現上又有點麻煩,又要使用vector,又要有乙個count計數,最後還要對vector排序;
演算法不變,對**進行優化;
1.沒有必要使用vector;因為非最小長度的組合及其個數是沒用的,沒有必要儲存;
2.沒有必要使用count計數;因為可以直接用j-i+1得到長度;
class solution }}
return res==int_max ? 0 : res;
}};
思路:使用2個指標,乙個指向開始的位置,乙個指向使得sum大於等於s同時長度最小的最後位置,不斷移動左端點。遍歷陣列就可找到滿足條件的長度。
class solution
}return res==int_max ? 0 : res;
}};
leetcode 長度最小的子陣列
給定乙個含有n個正整數的陣列和乙個正整數s 找出該陣列中滿足其和 s的長度最小的連續子陣列。如果不存在符合條件的連續子陣列,返回 0。示例 輸入 s 7,nums 2,3,1,2,4,3 輸出 2解釋 子陣列 4,3 是該條件下的長度最小的連續子陣列。雙指標法解決,先從零開始累加sum,先保證sum...
Leetcode 長度最小的子陣列
給定乙個含有 n 個正整數的陣列和乙個正整數 s 找出該陣列中滿足其和 s 的長度最小的連續子陣列。如果不存在符合條件的連續子陣列,返回 0。示例 1 輸入 s 7,nums 2 3,1 2,4 3 輸出 2解釋 子陣列 4,3 是該條件下的長度最小的連續子陣列。可以使用滑動視窗的方法,i在左邊界,...
LeetCode 長度最小的子陣列
題目描述 給定乙個含有 n 個正整數的陣列和乙個正整數 s 找出該陣列中滿足其和 s 的長度最小的連續子陣列,並返回其長度。如果不存在符合條件的連續子陣列,返回 0。示例 輸入 s 7,nums 2,3,1,2,4,3 輸出 2 解釋 子陣列 4,3 是該條件下的長度最小的連續子陣列。題解 clas...