2023-03-06 Daily Challenge
Today I have done leetcode's March LeetCoding Challenge with cpp
.
March LeetCoding Challenge 6
Description
Kth Missing Positive Number
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]
for1 <= i < j <= arr.length
Follow up:
Could you solve this problem in less than O(n) complexity?
Solution
class Solution {
public:
int findKthPositive(vector<int>& arr, int k) {
int pos = 0;
int prev = 0;
arr.push_back(INT_MAX);
while(k) {
while(arr[pos] - prev == 1) {
prev = arr[pos];
pos += 1;
}
if(prev + k < arr[pos]) return prev+k;
else {
k -= arr[pos] - prev - 1;
prev = arr[pos];
pos += 1;
}
}
return -1;
}
};
// Accepted
// 84/84 cases passed (9 ms)
// Your runtime beats 33.58 % of cpp submissions
// Your memory usage beats 73.33 % of cpp submissions (9.6 MB)