刷題81 統計 優美子陣列

2022-07-28 03:45:13 字數 829 閱讀 3502

給你乙個整數陣列 nums 和乙個整數 k。

如果某個 連續 子陣列中恰好有 k 個奇數數字,我們就認為這個子陣列是「優美子陣列」。

請返回這個陣列中「優美子陣列」的數目。

示例 1:

輸入:nums = [1,1,2,1,1], k = 3

輸出:2

解釋:包含 3 個奇數的子陣列是 [1,1,2,1] 和 [1,2,1,1] 。

示例 2:

輸入:nums = [2,4,6], k = 1

輸出:0

解釋:數列中不包含任何奇數,所以不存在優美子陣列。

示例 3:

輸入:nums = [2,2,2,1,2,2,1,2,2,2], k = 2

輸出:16

1 <= nums.length <= 50000

1 <= nums[i] <= 10^5

1 <= k <= nums.length

滑動視窗

使用滑動視窗方法,首先記錄陣列中奇數元素的下標,把下標儲存在乙個以-1開頭的陣列(arr)中,並將此陣列(arr)末尾新增乙個數,用於處理兩邊邊界情況;

遍歷陣列arr,每個『視窗』的兩邊差值相乘即為包含該視窗的所有情況,都累加到res;

返回res。

/**

* @param nums

* @param k

* @return

*/var numberofsubarrays = function(nums, k)

}arr.push(len);

for(let i=1; i+kreturn res;

};

1248 統計 優美子陣列

給你乙個整數陣列 nums 和乙個整數 k。如果某個 連續 子陣列中恰好有 k 個奇數數字,我們就認為這個子陣列是 優美子陣列 請返回這個陣列中 優美子陣列 的數目。示例 1 輸入 nums 1,1,2,1,1 k 3 輸出 2 解釋 包含 3 個奇數的子陣列是 1,1,2,1 和 1,2,1,1 ...

1248 統計 優美子陣列

題解 class solution vectorcount nums.size 1,0 比如count i 下標i表示奇數個數,count i 表示情況有多少種 count 0 1 int odd 0 累計前面到i位置,有奇數的個數pre i 區間 0,i int sum 0 for int i 0...

leetcode之統計優美子陣列

給你乙個整數陣列 nums 和乙個整數 k。如果某個 連續 子陣列中恰好有 k 個奇數數字,我們就認為這個子陣列是 優美子陣列 請返回這個陣列中 優美子陣列 的數目。首先我們遍歷一遍陣列,為奇設為1不為奇設為0 之後記錄一下之字首和出現的次數和字首和的大小 然後答案即為當前字首和大小 k的數值出現的...