Skip to content

Commit 232a23b

Browse files
solves find the luckt number ina n array
1 parent a824885 commit 232a23b

File tree

2 files changed

+33
-1
lines changed

2 files changed

+33
-1
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -354,7 +354,7 @@
354354
| 1380 | [Lucky Numbers In A Matrix](https://leetcode.com/problems/lucky-numbers-in-a-matrix) | [![Java](assets/java.png)](src/LuckyNumbersInAMatrix.java) | |
355355
| 1385 | [Find The Distance Value Between 2 Arrays](https://leetcode.com/problems/find-the-distance-value-between-two-arrays) | [![Java](assets/java.png)](src/FindTheDistanceValuesBetweenTwoArrays.java) | |
356356
| 1389 | [Create Target Array in Given Order](https://leetcode.com/problems/create-target-array-in-the-given-order) | [![Java](assets/java.png)](src/CreateTargetArrayInGivenOrder.java) | |
357-
| 1394 | [Find Lucky Integer In An Array](https://leetcode.com/problems/find-lucky-integer-in-an-array) | | |
357+
| 1394 | [Find Lucky Integer In An Array](https://leetcode.com/problems/find-lucky-integer-in-an-array) | [![Java](assets/java.png)](src/FindTheLuckyIntegerInAnArray.java) | |
358358
| 1399 | [Count Largest Group](https://leetcode.com/problems/count-largest-group) | | |
359359
| 1403 | [Minimum Subsequence in Non-Increasing Order](https://leetcode.com/problems/minimum-subsequence-in-non-increasing-order) | | |
360360
| 1408 | [String Matching In An Array](https://leetcode.com/problems/string-matching-in-an-array) | | |

src/FindTheLuckyIntegerInAnArray.java

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import java.util.Comparator;
2+
import java.util.HashMap;
3+
import java.util.Map;
4+
import java.util.PriorityQueue;
5+
import java.util.Queue;
6+
7+
public class FindTheLuckyIntegerInAnArray {
8+
public int findLucky(int[] array) {
9+
Map<Integer, Integer> frequencies = getFrequencies(array);
10+
Queue<Integer> luckyIntegers = getLuckyIntegers(frequencies);
11+
if (luckyIntegers.isEmpty()) return -1;
12+
return luckyIntegers.poll();
13+
}
14+
15+
private Map<Integer, Integer> getFrequencies(int[] array) {
16+
Map<Integer, Integer> frequencies = new HashMap<>();
17+
for (int element : array) {
18+
frequencies.put(element, frequencies.getOrDefault(element, 0) + 1);
19+
}
20+
return frequencies;
21+
}
22+
23+
private Queue<Integer> getLuckyIntegers(Map<Integer, Integer> frequencies){
24+
Queue<Integer> luckyNumbers = new PriorityQueue<>(Comparator.reverseOrder());
25+
for (Map.Entry<Integer, Integer> entry : frequencies.entrySet()) {
26+
if (entry.getKey() == entry.getValue()) {
27+
luckyNumbers.add(entry.getValue());
28+
}
29+
}
30+
return luckyNumbers;
31+
}
32+
}

0 commit comments

Comments
 (0)