您的位置 首页 > 腾讯云社区

LeetCode 1394. 找出数组中的幸运数---村雨遥

题目1394. 找出数组中的幸运数[1]描述在整数数组中,如果一个整数的出现频次和它的数值大小相等,我们就称这个整数为「幸运数」。 给你一个整数数组 arr,请你从中找出并返回一个幸运数。 如果数组中存在多个幸运数,只需返回 最大 的那个。 如果数组中不含幸运数,则返回 -1 。 示例 1: 输入:arr = [2,2,3,4] 输出:2 解释:数组中唯一的幸运数是 2 ,因为数值 2 的出现频次也是 2 。 示例 2: 输入:arr = [1,2,2,3,3,3] 输出:3 解释:1、2 以及 3 都是幸运数,只需要返回其中最大的 3 。 示例 3: 输入:arr = [2,2,2,3,3] 输出:-1 解释:数组中不存在幸运数。 示例 4: 输入:arr = [5] 输出:-1 示例 5: 输入:arr = [7,7,7,7,7,7,7] 输出:7 解题思路定义一个集合set,用于存放幸运数;两次遍历数组,同时在定义一个变量count用于计数;判断频次和数值大小是否相等,相等则加入集合set;跳出循环后,判断集合set是否为空,不为空则返回集合中的最大值;默认返回-1,即数组中不含幸运数;实现package Array; import java.util.Collections; import java.util.HashSet; import java.util.Set; /** * Created with IntelliJ IDEA. * Version : 1.0 * Author : cunyu * Email : cunyu1024@foxmail.com * Website : https://cunyu1943.github.io * Date : 2020/4/3 15:21 * Project : LeetCode * Package : Array * Class : OneThreeNineFour * Desc : 1394. 找出数组中的幸运数 */ public class OneThreeNineFour { public static void main(String[] args) throws Exception { int[] arr = {2}; OneThreeNineFour oneThreeNineFour = new OneThreeNineFour(); System.out.println(oneThreeNineFour.findLucky(arr)); } public int findLucky(int[] arr) { Set<Integer> set = new HashSet<>(); for (int i = 0; i < arr.length; i++) { int count = 0; for (int j = 0; j < arr.length; j++) { if (arr[i] == arr[j]) { count++; } } if (count == arr[i]) { set.add(count); } } if (!set.isEmpty()) { return Collections.max(set); } return -1; } } 参考资料

[1] 1394. 找出数组中的幸运数: https://leetcode-cn.com/problems/find-lucky-integer-in-an-array/

---来自腾讯云社区的---村雨遥

关于作者: 瞎采新闻

这里可以显示个人介绍!这里可以显示个人介绍!

热门文章

留言与评论(共有 0 条评论)
   
验证码: