给出一个有序数组 A
,数组中的每个数字都是 独一无二的,找出从数组最左边开始的第 K
个缺失数字。
示例 1:
输入:A = [4,7,9,10], K = 1
输出:5
解释:
第一个缺失数字为 5 。
示例 2:
输入:A = [4,7,9,10], K = 3
输出:8
解释:
缺失数字有 [5,6,8,...],因此第三个缺失数字为 8 。
示例 3:
输入:A = [1,2,4], K = 3
输出:6
解释:
缺失数字有 [3,5,6,7,...],因此第三个缺失数字为 6 。
提示:
1 <= A.length <= 50000
1 <= A[i] <= 1e7
1 <= K <= 1e8
思路:
模拟就好。
class Solution(object):
def missingElement(self, nums, k):
"""
:type nums: List[int]
:type k: int
:rtype: int
"""
for i in range(1, len(nums)):
interval = nums[i] - nums[i - 1] - 1 #interval代表间隔的数字
if interval >= k: #说明答案出现在nums[i-1] 到 nums[i]之间
return nums[i - 1] + k
k -= interval
return nums[-1] + k #说明答案出现在nums[-1]的后面