美文网首页
IOS 算法(基础篇) ----- 拥有最多糖果的孩子

IOS 算法(基础篇) ----- 拥有最多糖果的孩子

作者: ShawnAlex | 来源:发表于2020-07-07 14:23 被阅读0次

    今天看到一道题非常有意思的题
    如果你想知道什么题? 既然你诚心诚意的发问了, 我就大发慈悲的告诉你!

    给你一个数组 candies 和一个整数 extraCandy ,其中 candies[i] 代表第 i 个孩子拥有的糖果数目。

    对每一个孩子,检查是否存在一种方案,将额外的 extraCandy 个糖果分配给孩子们之后,此孩子有 最多 的糖果。注意,允许有多个孩子同时拥有 最多 的糖果数目。

    例如:
    输入: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]

    我认为这个题目出的比较好, 把抽象的代码用比较形象的糖果问题描绘, 给人一种很好代入感
    其实这个题目难点有2个

    找到给定数组最大元素 max
    判断元素之和是否 >= max
    swift处理这题优点就是, 找最大值, 判断, 都有swift自带的方法, 从而达到最简洁的, 最快速执行
    candies.max()! //找到最大值
    map 函数判断之和 >= max 返回 Bool数组(最终结果)
    这种方法时间复杂度, 空间复杂度都最小

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

    题目来源:力扣(LeetCode) 感谢力扣爸爸 :)

    IOS 算法合集地址

    相关文章

      网友评论

          本文标题:IOS 算法(基础篇) ----- 拥有最多糖果的孩子

          本文链接:https://www.haomeiwen.com/subject/enpaqktx.html