题目地址:
https://leetcode.com/problems/find-lucky-integer-in-an-array/
给定一个正整数数组 A A A,返回其值等于其出现次数的数中最大的那个。如果不存在则返回 − 1 -1 −1。
代码如下:
import java.util.HashMap;
import java.util.Map;
public class Solution {
public int findLucky(int[] arr) {
Map<Integer, Integer> map = new HashMap<>();
for (int x : arr) {
map.put(x, map.getOrDefault(x, 0) + 1);
}
int res = -1;
for (int x : arr) {
if (map.get(x) == x) {
res = Math.max(res, x);
}
}
return res;
}
}
时间复杂度 O ( n ) O(n) O(n)。