LeetCode in Kotlin

3471. Find the Largest Almost Missing Integer

Easy

You are given an integer array nums and an integer k.

An integer x is almost missing from nums if x appears in exactly one subarray of size k within nums.

Return the largest almost missing integer from nums. If no such integer exists, return -1.

A subarray is a contiguous sequence of elements within an array.

Example 1:

Input: nums = [3,9,2,1,7], k = 3

Output: 7

Explanation:

We return 7 since it is the largest integer that appears in exactly one subarray of size k.

Example 2:

Input: nums = [3,9,7,2,1,7], k = 4

Output: 3

Explanation:

We return 3 since it is the largest and only integer that appears in exactly one subarray of size k.

Example 3:

Input: nums = [0,0], k = 1

Output: -1

Explanation:

There is no integer that appears in only one subarray of size 1.

Constraints:

Solution

class Solution {
    fun largestInteger(nums: IntArray, k: Int): Int {
        val freq = IntArray(51)
        for (i in 0..nums.size - k) {
            val set: MutableSet<Int> = HashSet<Int>()
            for (j in i..<i + k) {
                set.add(nums[j])
            }
            for (key in set) {
                freq[key]++
            }
        }
        for (i in 50 downTo 0) {
            if (freq[i] == 1) {
                return i
            }
        }
        return -1
    }
}