題目描述:
給定一個含有 n 個正整數的數組和一個正整數 s ,找出該數組中滿足其和 ≥ s 的長度最小的連續子數組,並返回其長度。如果不存在符合條件的連續子數組,返回 0。
示例:
輸入: s = 7, nums = [2,3,1,2,4,3]
輸出: 2
解釋: 子數組 [4,3] 是該條件下的長度最小的連續子數組。
進階:
如果你已經完成了O(n) 時間複雜度的解法, 請嘗試 O(n log n) 時間複雜度的解法。
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/minimum-size-subarray-sum
著作權歸領釦網絡所有。商業轉載請聯繫官方授權,非商業轉載請註明出處。
解答:
int minSubArrayLen(int s, int* nums, int numsSize)
{
if (0 == numsSize)
{
return 0;
}
int i = 0;
int j = 0;
int sum = 0;
//int ans = 0;
int ans = INT_MAX;
for (i = 0; i < numsSize; i++)
{
sum = 0;
for (j = i; j < numsSize; j++)
{
sum += nums[j];
if (sum >= s)
{
ans = fmin(ans, j - i + 1);
//ans = j - i + 1;
break;
}
}
}
return ans == INT_MAX ? 0 : ans;
//return ans;
}
運行結果: