1539. Kth Missing Positive Number

Easy

Given an array arr of positive integers sorted in a strictly increasing order, and an integer k.

Return the kth positive integer that is missing from this array.

Example 1:

Input: arr = [2,3,4,7,11], k = 5
Output:
 9
Explanation: 
The missing positive integers are [1,5,6,8,9,10,12,13,...]. The 5th missing positive integer is 9.

Example 2:

Input: arr = [1,2,3,4], k = 2
Output:
 6
Explanation: 
The missing positive integers are [5,6,7,...]. The 2nd missing positive integer is 6.

Constraints:

  • 1 <= arr.length <= 1000

  • 1 <= arr[i] <= 1000

  • 1 <= k <= 1000

  • arr[i] < arr[j] for 1 <= i < j <= arr.length

Follow up:

Could you solve this problem in less than O(n) complexity?

解題

func findKthPositive(arr []int, k int) int {
    l := arr[len(arr)-1]
    nums := make([]bool, l)

    for _, n := range arr {
        nums[n-1] = true
    }

    count := 0
    for i, n := range nums {
        if !n {
            count++
        }

        if count == k { return i+1 }
    }

    return (k-count) + l
}

Last updated