2996. Smallest Missing Integer Greater Than Sequential Prefix Sum
</> Solution
class Solution {
public int missingInteger(int[] nums) {
int n = nums.length;
int sum = nums[0];
int i = 1;
while (i < n && nums[i] == nums[i - 1] + 1) {
sum += nums[i];
i++;
}
Set<Integer> set = new HashSet<>();
for (int num : nums) {
set.add(num);
}
while (set.contains(sum)) {
sum++;
}
return sum;
}
}
By CodeByTushu
class Solution:
def missingInteger(self, nums):
n = len(nums)
# Find the longest sequential prefix
total = nums[0]
i = 1
while i < n and nums[i] == nums[i - 1] + 1:
total += nums[i]
i += 1
# Store all numbers in a set
seen = set(nums)
# Find the smallest missing integer
while total in seen:
total += 1
return total
class Solution {
public:
int missingInteger(vector<int>& nums) {
int n = nums.size();
// Find the longest sequential prefix
int sum = nums[0];
int i = 1;
while (i < n && nums[i] == nums[i - 1] + 1) {
sum += nums[i];
i++;
}
// Store all numbers in a set
unordered_set<int> seen(nums.begin(), nums.end());
// Find the smallest missing integer
while (seen.count(sum)) {
sum++;
}
return sum;
}
};
class Solution {
missingInteger(nums) {
const n = nums.length;
// Find the longest sequential prefix
let sum = nums[0];
let i = 1;
while (i < n && nums[i] === nums[i - 1] + 1) {
sum += nums[i];
i++;
}
// Store all numbers in a Set
const seen = new Set(nums);
// Find the smallest missing integer
while (seen.has(sum)) {
sum++;
}
return sum;
}
}