DDSA Solutions

Kth Missing Positive Number in a Sorted Array

Advertisement

Intuition

Find kth missing positive integer. Binary search on index: missing before index i = arr[i]-i-1.

Algorithm

  1. 1Binary search: if arr[mid]-mid-1 < k: lo=mid+1. Else hi=mid-1. Answer = lo+k.

Common Pitfalls

  • Same as LC 1539. Missing count before index i = arr[i]-(i+1). Binary search for split point.
Kth Missing Positive Number in a Sorted Array.java
Java
// Approach: Binary search. For index i, missing count = arr[i] - (i+1). Find where missing count >= k.
// Time: O(log n) Space: O(1)
class Solution {
    public int kthMissing(int[] arr, int k) {
        // checking inside array
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] <= k)
                k++;
            else
                break;
        }
        return k;
    }
}
Advertisement
Was this solution helpful?