Kth Missing Positive Number

Jesus PF
1 min readJan 10, 2021

From software interviewing series, extracted this exercise from leetcode daily challenges. https://leetcode.com/explore/challenge/card/january-leetcoding-challenge-2021/579/week-1-january-1st-january-7th/3594/

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

Find 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

Hint:

Keep track of how many positive numbers are missing as you scan the array.

Solution:

class Solution {
public int findKthPositive(int[] arr, int k) {
// find missing from 1 to first
//go on with next limit
//substracting the k to the values in range
int prevLimit=1;
for(int curr: arr){
//calculate size
int missing = curr-prevLimit;
if(missing >= k){
return prevLimit+k-1;
}
k=k-missing;
prevLimit=curr+1;
}
return prevLimit+k-1;
}
}

--

--

Jesus PF

I am en electronics engineer, graduated from ITESM. Experienced working as functional validation and software development.