前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >LeetCode 1394. 找出数组中的幸运数

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

作者头像
村雨遥
发布于 2020-04-10 06:15:39
发布于 2020-04-10 06:15:39
37900
代码可运行
举报
文章被收录于专栏:JavaParkJavaPark
运行总次数:0
代码可运行

题目

1394. 找出数组中的幸运数[1]

描述

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
在整数数组中,如果一个整数的出现频次和它的数值大小相等,我们就称这个整数为「幸运数」。

给你一个整数数组 arr,请你从中找出并返回一个幸运数。

如果数组中存在多个幸运数,只需返回 最大 的那个。
如果数组中不含幸运数,则返回 -1 。
 
示例 1:

输入:arr = [2,2,3,4]
输出:2
解释:数组中唯一的幸运数是 2 ,因为数值 2 的出现频次也是 2 。
示例 2:

输入:arr = [1,2,2,3,3,3]
输出:3
解释:12 以及 3 都是幸运数,只需要返回其中最大的 3 。
示例 3:

输入:arr = [2,2,2,3,3]
输出:-1
解释:数组中不存在幸运数。
示例 4:

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

输入:arr = [7,7,7,7,7,7,7]
输出:7

解题思路

  1. 定义一个集合set,用于存放幸运数;
  2. 两次遍历数组,同时在定义一个变量count用于计数;
  3. 判断频次和数值大小是否相等,相等则加入集合set
  4. 跳出循环后,判断集合set是否为空,不为空则返回集合中的最大值;
  5. 默认返回-1,即数组中不含幸运数;

实现

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-04-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 村雨遥 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
LeetCode 1394. 找出数组中的幸运数(map计数)
在整数数组中,如果一个整数的出现频次和它的数值大小相等,我们就称这个整数为「幸运数」。
Michael阿明
2020/07/13
6580
LeetCode 1394. 找出数组中的幸运数
在整数数组中,如果一个整数的出现频次和它的数值大小相等,我们就称这个整数为「幸运数」。
freesan44
2020/06/03
4180
LeetCode 40.最小的k个数
输入整数数组 arr ,找出其中最小的 k 个数。例如,输入 4、5、1、6、2、7、3、8 这 8 个数字,则最小的 4 个数字是 1、2、3、4
村雨遥
2020/03/24
4140
LeetCode 1346. 检查整数及其两倍数是否存在
给你一个整数数组 arr,请你检查是否存在两个整数 N 和 M,满足 N 是 M 的两倍(即,N = 2 * M)。
村雨遥
2020/05/06
1.5K0
LeetCode 1089. 复写零
给你一个长度固定的整数数组 arr,请你将该数组中出现的每个零都复写一遍,并将其余的元素向右平移。
村雨遥
2020/04/29
3880
【 Java 组 】蓝桥杯省赛真题 [世纪末的星期] [幸运数] (持续更新中...)
解题思路: Java解法比较简单,可以直接调用 Calendar 对象的相关方法:
.29.
2023/10/17
2510
【 Java 组 】蓝桥杯省赛真题 [世纪末的星期] [幸运数] (持续更新中...)
LeetCode 941. 有效的山脉数组
给定一个整数数组 A,如果它是有效的山脉数组就返回 true,否则返回 false。
村雨遥
2020/05/06
2790
LeetCode 941. 有效的山脉数组
1.1 5368. 找出数组中的幸运数(1394. Find Lucky Integer in an Array)
0. 前言 决定重新开始刷 LeetCode,这周参见了周赛 中文版地址:https://leetcode-cn.com/contest/weekly-contest-182/ 英文版地址:https://leetcode.com/contest/weekly-contest-182 1. 题解 1.1 5368. 找出数组中的幸运数(1394. Find Lucky Integer in an Array) 中文版题目描述:https://leetcode-cn.com/contest/weekly-c
西凉风雷
2022/11/23
2430
LeetCode 1380. 矩阵中的幸运数(set)
给你一个 m * n 的矩阵,矩阵中的数字 各不相同 。请你按 任意 顺序返回矩阵中的所有幸运数。
Michael阿明
2020/07/13
5610
LeetCode 1380. 矩阵中的幸运数
https://leetcode-cn.com/problems/lucky-numbers-in-a-matrix/
freesan44
2021/10/27
3500
LeetCode 1380. 矩阵中的幸运数
LeetCode 977. 有序数组的平方
给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。
村雨遥
2020/04/07
3750
leetcode算法题js版
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
一粒小麦
2019/07/18
9210
leetcode算法题js版
蓝桥杯 幸运数
用户1148523
2018/01/09
1.1K0
有没有那么一道题,让你真正理解了Python编程?
音乐结束,回到正题。近日浏览LeetCode,发现了一道很有意思的小题目。当我尝试用Python解答的时候,居然动用了集合、map函数、zip函数、lambda函数、sorted函数,调试过程还涉及到了迭代器、生成器、列表推导式的概念。一个看似极为简单的题目,尽管最终的代码可以合并成一行,却几乎把Python的编程技巧用了一遍,真可谓“细微之处见精神”!通过这个题目,也许会让你从此真正理解了Python编程。
用户2966292
2020/04/07
7670
LeetCode 485. 最大连续1的个数
输入: [1,1,0,1,1,1] 输出: 3 解释: 开头的两位和最后的三位都是连续 1,所以最大连续 1 的个数是 3. 注意:
村雨遥
2020/05/06
3850
LeetCode 1389. 按既定顺序创建目标数组
1389. 按既定顺序创建目标数组: https://leetcode-cn.com/problems/create-target-array-in-the-given-order/
村雨遥
2020/04/07
6420
LeetCode数组高频题目整理
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
嵌入式与Linux那些事
2021/05/20
1.6K0
LeetCode数组高频题目整理
C# .NET面试系列九:常见的算法
在斐波那契数列中,通常是第一个和第二个数是1,后续的每个数是前两个数之和。因此,第30个数可以通过递归或循环方式计算。
GoodTime
2024/03/11
1760
C# .NET面试系列九:常见的算法
LeetCode 1338. 数组大小减半
给你一个整数数组 arr。你可以从中选出一个整数集合,并删除这些整数在数组中的每次出现。
Michael阿明
2020/07/13
5670
历届试题 幸运数
1 3 5 7 9 …. 。这时,3为第2个幸运数,然后把所有能被3整除的序号位置的数删去。注意,是序号位置,不是那个数本身能否被3整除!! 删除的应该是5,11, 17, …
AI那点小事
2020/04/20
5050
历届试题 幸运数
推荐阅读
相关推荐
LeetCode 1394. 找出数组中的幸运数(map计数)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验