1338 陣列大小減半

2021-10-10 17:11:14 字數 626 閱讀 7701

題目描述:給你乙個整數陣列 arr。你可以從中選出乙個整數集合,並刪除這些整數在陣列中的每次出現。返回 至少能刪除陣列中的一半整數的整數集合的最小大小。

解題思路:這道題思路非常簡單,統計每個整數出現的次數,然後按出現次數降序對這些數進行排序,依次刪除掉當前出現次數最多的數,直到已經達到原陣列大小的一半即可返回,刪除的過程只需要對刪除的數出現的次數累積求和即可,無需真正的刪除,**如下:

class

solution

:def

minsetsize

(self, arr: list[

int])-

>

int:

from collections import counter

a = counter(arr)

count =

0 ans =

0 size =

len(arr)

for k, c in a.most_common():

count += c

ans +=

1if count *

2>= size:

break

return ans

力扣 1338 陣列大小減半

給你乙個整數陣列arr。你可以從中選出乙個整數集合,並刪除這些整數在陣列中的每次出現。返回至少能刪除陣列中的一半整數的整數集合的最小大小。輸入 arr 3,3,3,3,5,5,5,2,2,7 輸出 2解釋 選擇 使得結果陣列為 5,5,5,2,2 長度為 5 原陣列長度的一半 大小為 2 的可行集合...

Leetcode 5329 陣列大小減半

給你乙個整數陣列 arr。你可以從中選出乙個整數集合,並刪除這些整數在陣列中的每次出現。返回 至少 能刪除陣列中的一半整數的整數集合的最小大小。示例 1 輸入 arr 3,3,3,3,5,5,5,2,2,7 輸出 2 解釋 選擇 使得結果陣列為 5,5,5,2,2 長度為 5 原陣列長度的一半 大小...

c 求陣列大小

每次看到c 的奇技淫巧都覺得這門語言過於複雜龐大,可有時會忍不住去學習,今天學到乙個c 判斷陣列大小,寫下做紀念 在c中判斷陣列大小經常用 define num x sizeof x sizeof 0 x 注意這裡用0 x 作用是防止自定義型別計算,但我們用乙個指標指向乙個陣列時。比如int a 2...