和至少為K的最短子陣列

2021-09-18 04:34:05 字數 639 閱讀 9200

```

返回 a 的最短的非空連續子陣列的長度,該子陣列的和至少為 k 。

如果沒有和至少為 k 的非空子陣列,返回 -1 。

示例 1:

輸入:a = [1], k = 1

輸出:1

示例 2:

輸入:a = [1,2], k = 4

輸出:-1

示例 3:

輸入:a = [2,-1,2], k = 3

輸出:3

```重點就是每次遍歷的時候,加到i的時候,把i之前的負數全部轉換。為什麼要這麼做,這麼做代表i之前的sum在每個位置都是單調上公升的,所以在求i位置最短長度的時候,就可以依次減去begin開始的位置,最後乙個大於k的時候,就是i位置的最短子陣列

/***這是加到i的時候,把i之前的負數,全部化解掉,化解到之前的

*/for (int j=i-1;a[j+1]<0;j--)

if (sum>=k)

```

leetcode 862 和至少為K的最短子陣列

題目描述 返回a的最短的非空連續子陣列的長度,該子陣列的和至少為k。如果沒有和至少為k的非空子陣列,返回 1 示例 輸入 a 1 k 1 輸出 1 輸入 a 1,2 k 4 輸出 1 輸入 a 2,1,2 k 3 輸出 31.1 a.length 50000 2.10 5 a i 10 5 3.1 ...

LeetCode 862 和至少為K的最短子陣列

leetcode 862 和至少為k的最短子陣列 題目大意 給你乙個整數陣列 nums 和乙個整數 k 找出 nums 中和至少為 k 的最短非空子陣列,並返回該子陣列的長度。如果不存在這樣的子陣列,返回 1 子陣列是陣列中連續的一部分。題解 由於陣列中可能出現負數,所以尺取法不可行,需要使用單調佇...

和為k的子陣列

給定乙個整數陣列和乙個整數 k,你需要找到該陣列中和為 k 的連續的子陣列的個數。示例 1 輸入 nums 1,1,1 k 2 輸出 2 1,1 與 1,1 為兩種不同的情況。說明 陣列的長度為 1,20,000 陣列中元素的範圍是 1000,1000 且整數 k 的範圍是 1e7,1e7 o n ...