575. 分糖果(Python)

題目

難度:★☆☆☆☆
類型:數(shù)學(xué),益智

給定一個(gè)偶數(shù)長度的數(shù)組,其中不同的數(shù)字代表著不同種類的糖果,每一個(gè)數(shù)字代表一個(gè)糖果。你需要把這些糖果平均分給一個(gè)弟弟和一個(gè)妹妹。返回妹妹可以獲得的最大糖果的種類數(shù)。

注意
數(shù)組的長度為[2, 10,000],并且確定為偶數(shù)。
數(shù)組中數(shù)字的大小在范圍[-100,000, 100,000]內(nèi)。

示例

示例 1:
輸入: candies = [1,1,2,2,3,3]
輸出: 3
解析: 一共有三種種類的糖果,每一種都有兩個(gè)。
最優(yōu)分配方案:妹妹獲得[1,2,3],弟弟也獲得[1,2,3]。這樣使妹妹獲得糖果的種類數(shù)最多。

示例 2 :
輸入: candies = [1,1,2,3]
輸出: 2
解析: 妹妹獲得糖果[2,3],弟弟獲得糖果[1,1],妹妹有兩種不同的糖果,弟弟只有一種。這樣使得妹妹可以獲得的糖果種類數(shù)最多。

解答

一個(gè)前提:弟弟和妹妹獲得糖果個(gè)數(shù)相同。

分兩種情況:

  1. 如果糖的種類數(shù)小于糖總數(shù)的一半,那么可以把所有種類的糖果都分給妹妹至少一塊,妹妹獲得糖果最大種類數(shù)為糖果種類數(shù);

  2. 如果糖的種類不小于糖總數(shù)的一半,由于給妹妹的糖至多為糖總數(shù)的一半,那么妹妹手中的糖種類可以各不相同,最大種類數(shù)即為糖總數(shù)的一半;

以上兩種情況取最小值即可。

class Solution:
    def distributeCandies(self, candies):
        return min(len(set(candies)), len(candies) // 2)

如有疑問或建議,歡迎評論區(qū)留言~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 問題(Easy): Given an integer array with even length, where ...
    Cloudox_閱讀 333評論 0 0
  • 2011年10月20日為什么糊涂 回家的路上,曉曉打了個(gè)噴嚏,媽媽有點(diǎn)緊張:“怎么了?”卻說成了:“怎么辦?”說完...
    羊羊羊羊汪閱讀 11,696評論 2 14
  • 躺在床上滑手機(jī),突然跳出了微信消息,是朋友F先生。他曾是我暗戀了三年的男人。 "好久不見了,最近還好嗎?" "嗯....
    書暢閱讀 1,044評論 0 0
  • 每個(gè)人的痛處必定有一個(gè)飽腹經(jīng)綸的故事,如果想避免類似事件的發(fā)生,必須“挖井”,從根上解決問題,否則治標(biāo)不治本,無濟(jì)于事。
    城市格調(diào)劉姣閱讀 314評論 0 0
  • “人生如夢,白云蒼狗?!笨赐暌徊坎康拇┰絼?,看完一部部的古裝片,也就為了這拿腔拿調(diào)的大排場,跟那般繾綣虐心的愛恨啦...
    c46f828e0103閱讀 521評論 3 15

友情鏈接更多精彩內(nèi)容