Leetcode刷題(Python)575 分糖果

2021-09-13 21:58:19 字數 1069 閱讀 1669

題目描述:

給定乙個偶數長度的陣列,其中不同的數字代表著不同種類的糖果,每乙個數字代表乙個糖果。你需要把這些糖果平均分給乙個弟弟和乙個妹妹。返回妹妹可以獲得的最大糖果的種類數。

示例 1:

輸入: candies = [1,1,2,2,3,3]

輸出: 3

解析: 一共有三種種類的糖果,每一種都有兩個。

最優分配方案:妹妹獲得[1,2,3],弟弟也獲得[1,2,3]。這樣使妹妹獲得糖果的種類數最多。

示例 2 :

輸入: candies = [1,1,2,3]

輸出: 2

解析: 妹妹獲得糖果[2,3],弟弟獲得糖果[1,1],妹妹有兩種不同的糖果,弟弟只有一種。這樣使得妹妹可以獲得的糖果種類數最多。

注意:

陣列的長度為[2, 10,000],並且確定為偶數。

陣列中數字的大小在範圍[-100,000, 100,000]內。

解題思路:

1、如果糖果的種類數小於總糖果數目的一半,則妹妹可以得到全部種類的糖果。

2、如果糖果的種類數大於總糖果數目的一半,由於要平均分配,妹妹獲得的糖果數目正好為總的糖果個數的一半。

**實現:

class solution:

def distributecandies(self, candies: list[int]) -> int:

s=set(candies) #用集合獲取糖果的種類

if len(s) < len(candies)/2:

return len(s)

else:

return int(len(candies)/2)

Leetcode鍊錶刷題 pytho語言

為方便後續的使用查詢,記錄一下 函式包括 找到兩個單鏈表相交的起始節點 反轉單鏈表 刪除鍊錶中等於給定值 val 的所有節點 definition for singly linked list.class listnode object def init self,x self.val x self...

開始刷題LeetCode

今天決定開始刷題,每天至少一題,如果題目確實沒有解決出來沒有關係,但是要保證每天至少接觸了一道新的題目!一定要堅持下去,現在是個菜鳥可能會感覺有點難度,堅持下去,總有一天會好的!今天是第一天,做的第乙個題目 reverse words in a string given an input strin...

leetcode刷題歷程

難度 簡單 題目 給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 ...