IOS 算法(基礎(chǔ)篇) ----- 擁有最多糖果的孩子

今天看到一道題非常有意思的題

給你一個(gè)數(shù)組 candies 和一個(gè)整數(shù) extraCandy ,其中 candies[i] 代表第 i 個(gè)孩子擁有的糖果數(shù)目。對(duì)每一個(gè)孩子,檢查是否存在一種方案,將額外的 extraCandy 個(gè)糖果分配給孩子們之后,此孩子有 最多 的糖果。注意,允許有多個(gè)孩子同時(shí)擁有 最多 的糖果數(shù)目。

例如:

輸入:candies = [3,4,6,2,4], extraCandy = 4
輸出:[true,true,true,false,true]

輸入:candies = [5,3,2,2,3], extraCandy = 1
輸出:[true,false,false,false,false]

解題思路

我認(rèn)為這個(gè)題目出的比較好, 把抽象的代碼用比較形象的糖果問(wèn)題描繪, 給人一種很好代入感
其實(shí)這個(gè)題目難點(diǎn)有2個(gè)

找到給定數(shù)組最大元素 max
判斷元素之和是否 >= max
swift處理這題優(yōu)點(diǎn)就是, 找最大值, 判斷, 都有swift自帶的方法, 從而達(dá)到最簡(jiǎn)潔的, 最快速執(zhí)行
candies.max()! //找到最大值
map 函數(shù)判斷之和 >= max 返回 Bool數(shù)組(最終結(jié)果)
這種方法時(shí)間復(fù)雜度, 空間復(fù)雜度都最小

class Solution {
    func kidsWithCandies(_ candies: [Int], _ extraCandy: Int) -> [Bool] {
        let max:Int = candies.max()!
        return candies.map {$0 + extraCandy >= max}

    }
}

題目來(lái)源:力扣(LeetCode) 感謝力扣爸爸 :)

IOS 算法合集地址

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

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