美文网首页
IOS 算法(基础篇) ----- 找出数组中的幸运数

IOS 算法(基础篇) ----- 找出数组中的幸运数

作者: ShawnAlex | 来源:发表于2020-10-16 10:22 被阅读0次

在整数数组中,如果一个整数的出现频次和它的数值大小相等,我们就称这个整数为「幸运数」。
给你一个整数数组 arr,请你从中找出并返回一个幸运数。
如果数组中存在多个幸运数,只需返回 最大 的那个。
如果数组中不含幸运数,则返回 -1 。

示例 1:
输入:arr = [2,2,3,4]
输出:2

示例 2:
输入:arr = [1,2,2,3,3,3]
输出:3

示例 3:
输入:arr = [2,2,2,3,3]
输出:-1

示例 4:
输入:arr = [5]
输出:-1

示例 5:
输入:arr = [7,7,7,7,7,7,7]
输出:7

哈希法

以出现数字做key, 出现次数做value
生成字典
key == value 就是我们要找的幸运数
判断最大的 key/value 就是我们想要的

    func findLucky(_ arr: [Int]) -> Int {
        let carr = arr.sorted()
        var dic = [Int:Int](), result = -1
        for i in carr {
            dic[i] = (dic[i] ?? 0) + 1
        }
        for (key, value) in dic {
            if key == value {
                result = max(result, value)
            }
        }
        return result
    }

题目来源:力扣(LeetCode) 感谢力扣爸爸 :)
IOS 算法合集地址

相关文章

  • IOS 算法(基础篇) ----- 找出数组中的幸运数

    在整数数组中,如果一个整数的出现频次和它的数值大小相等,我们就称这个整数为「幸运数」。给你一个整数数组 arr,请...

  • 找出数组中的幸运数

    题目: 题目的理解: 统计数组中相同数字的个数,然后获取个数最多的。 python实现 想看最优解法移步此处 提交...

  • LeetCode | 1394. Find Lucky Inte

    LeetCode 1394. Find Lucky Integer in an Array找出数组中的幸运数【Ea...

  • LeetCode 1394. 找出数组中的幸运数

    题目 在整数数组中,如果一个整数的出现频次和它的数值大小相等,我们就称这个整数为「幸运数」。 给你一个整数数组 a...

  • 算法(一)

    以下算法参考 <<算法>> 第4版[美] Robert Sedgewick 1. 欧几里德算法 2. 找出数组中组...

  • IOS 算法(基础篇) ----- 找出 3 位偶数

    给你一个整数数组 digits ,其中每个元素是一个数字(0 - 9)。数组中可能存在重复元素。你需要找出 所有 ...

  • 每日3题(2)- 找出数组中的幸运数

    题目: 在整数数组中,如果一个整数的出现频次和它的数值大小相等,我们就称这个整数为「幸运数」。 给你一个整数数组 ...

  • 数组 - Array

    新建数组 数组的下标是从0开始 Java中,访问数组注意是否越界 打擂台算法Example:找出数组中前两大的数 ...

  • LeetCode基础算法-数组

    LeetCode基础算法-数组 算法 LeetCode 数组相关 1. 从排序数组中删除重复项 描述:给定一个排序...

  • IOS 算法(基础篇) ----- 数组重新排序

    今天写一个简单的算法, 就好比大鱼大肉吃多了偶尔拍个黄瓜也是极好的 如果你想知道什么简单的? 既然你诚心诚意的发...

网友评论

      本文标题:IOS 算法(基础篇) ----- 找出数组中的幸运数

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