Kth Missing Positive Number
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
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.
Solution
Python solution
def binary_search(arr: List[int], k: int) -> int: if arr[0] > k: return k
1l = 0 2r = len(arr) - 1 3while l < r: 4 mid = (l + r) // 2 5 x = arr[mid] if mid < len(arr) else 10**9 6 if x - mid - 1 >= k: 7 r = mid 8 else: 9 l = mid + 1 10 11return k - (arr[l - 1] - (l - 1) - 1) + arr[l - 1]
Java Solution
public int binarySearch(int[] arr) { if (arr[0] > k) { return k; }
1int l = 0; 2int r = arr.length - 1; 3while (l < r) { 4 int mid = (l + r) / 2; 5 int x = mid < arr.length ? arr[mid] : Integer.MAX_VALUE; 6 if (x - mid - 1 >= k) { 7 r = mid; 8 } else { 9 l = mid + 1; 10 } 11} 12 13return k - (arr[l - 1] - (l - 1) - 1) + arr[l - 1];
}
What is the best way of checking if an element exists in a sorted array once in terms of time complexity? Select the best that applies.
Solution Implementation
In a binary min heap, the minimum element can be found in:
Recommended Readings
Patterns The Shortest Path Algorithm for Coding Interviews The goal of AlgoMonster is to help you get a job in the shortest amount of time possible in a data driven way We compiled datasets of tech interview problems and broke them down by patterns This way we can determine the
Recursion Recursion is one of the most important concepts in computer science Simply speaking recursion is the process of a function calling itself Using a real life analogy imagine a scenario where you invite your friends to lunch https algomonster s3 us east 2 amazonaws com recursion jpg You first
Runtime Overview When learning about algorithms and data structures you'll frequently encounter the term time complexity This concept is fundamental in computer science and offers insights into how long an algorithm takes to complete given a certain input size What is Time Complexity Time complexity represents the amount of time
Got a question? Ask the Monster Assistant anything you don't understand.
Still not clear? Ask in the Forum, Discord or Submit the part you don't understand to our editors.