1296 劃分陣列為連續數字的集合

2022-05-13 08:44:00 字數 1504 閱讀 8740

給你乙個整數陣列 nums 和乙個正整數 k,請你判斷是否可以把這個陣列劃分成一些由 k 個連續數字組成的集合。

如果可以,請返回 true;否則,返回 false。

示例 1:

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

輸出:true

解釋:陣列可以分成 [1,2,3,4] 和 [3,4,5,6]。

示例 2:

輸入:nums = [3,2,1,2,3,4,3,4,5,9,10,11], k = 3

輸出:true

解釋:陣列可以分成 [1,2,3] , [2,3,4] , [3,4,5] 和 [9,10,11]。

示例 3:

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

輸出:true

示例 4:

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

輸出:false

解釋:陣列不能分成幾個大小為 3 的子陣列。

1 <= nums.length <= 10^5

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

1 <= k <= nums.length

t了最後乙個case

class

solution:

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

n=len(nums)

if n%k!=0:return

false

b=nums[:]

b.sort()

nums.sort()

a=while

nums:

for i in range(nums[0],nums[0]+k):

if i in

nums:

nums.remove(i)

else

:

return

false

a.sort()

return a==b

ac

class

solution:

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

n=len(nums)

if n%k!=0:return

false

cnt=collections.counter(nums)

a=sorted(cnt)

for i in

a: ai=cnt[i]

if cnt[i]>0:

for j in range(i+1,i+k):

if cnt[j]>=ai:

cnt[j]-=ai

else

:

return

false

return true

1296 劃分陣列為連續數字的集合

給你乙個整數陣列 nums 和乙個正整數 k,請你判斷是否可以把這個陣列劃分成一些由 k 個連續數字組成的集合。如果可以,請返回 true 否則,返回 false。import j a.util.arrays import j a.util.hashmap import j a.util.map c...

NYOJ 整數劃分 三 劃分數大集合

題目描述 整數劃分是乙個經典的問題。請寫乙個程式,完成以下要求。輸入每組輸入是兩個整數n和k。1 n 50,1 k n 輸出 對於輸入的 n,k 第一行 將n劃分成若干正整數之和的劃分數。第二行 將n劃分成k個正整數之和的劃分數。第三行 將n劃分成最大數不超過k的劃分數。第四行 將n劃分成若干個 奇...

《挑戰程式設計競賽2》劃分數問題

本問題來自於 挑戰程式設計競賽2 劃分數問題 記dp i j j的i劃分數 記每一組物品的個數為a i 則1 i m,且a i 0 如 4的3劃分可表示為 對於 的劃分方案 其內元素同時減1得 為 4 3 的3劃分方案 對於剩下的劃分方案 去除其內的乙個0得,為4的 3 1 劃分方案 由此可得 dp...