1248 統計 優美子陣列

2021-10-04 20:59:05 字數 1136 閱讀 6288

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

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

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

示例 1:

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

輸出:2

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

1.暴力

2.字首和

class solution:

def numberofsubarrays(self, nums: list[int], k: int) -> int:

tmp=

for num in nums:

if num&1==0:

else:

res=0

for i in range(k,len(nums)+1):

for j in range(len(nums)-i+1):

if sum(tmp[j:j+i])==k:

res+=1

return res

class solution:

def numberofsubarrays(self, nums: list[int], k: int) -> int:

ans, d = 0, [1]

for i in nums:

if i & 1:

d += [0]

if len(d) > k:

ans += d[-1 - k]

d[-1] += 1

return ans

class solution:

def numberofsubarrays(self, nums: list[int], k: int) -> int:

res, tmp, dic = 0, 0,

for num in nums:

if num & 1:

tmp += 1

dic[tmp] = 1

else:

dic[tmp] += 1

res += dic.get(tmp-k, 0)

return res

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 1248 統計 優美子陣列

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

LeetCode1248 統計 優美子陣列

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