- 有序数组中的缺失元素
难度
中等
97
收藏
分享
切换为英文
接收动态
反馈
现有一个按 升序 排列的整数数组 nums ,其中每个数字都 互不相同 。
给你一个整数 k ,请你找出并返回从数组最左边开始的第 k 个缺失数字。
示例 1:
输入:nums = [4,7,9,10], k = 1
输出:5
解释:第一个缺失数字为 5 。
示例 2:
输入:nums = [4,7,9,10], k = 3
输出:8
解释:缺失数字有 [5,6,8,…],因此第三个缺失数字为 8 。
示例 3:
输入:nums = [1,2,4], k = 3
输出:6
解释:缺失数字有 [3,5,6,7,…],因此第三个缺失数字为 6 。
class Solution {
public int missingElement(int[] nums, int k) {
int index = 0;
int count = 0;
for (int i = 0; i < nums.length - 1; i++) {
int m = 1;
while (nums[i] + m < nums[i + 1]) {
index++;
if (index == k) {
return nums[i] + m;
}
m++;
}
count += (m - 1);
}
return nums[nums.length - 1] + k - count;
}
}