2019年力扣杯决赛-1. 有序数组中的缺失元素

给出一个有序数组 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. 1 <= A.length <= 50000
  2. 1 <= A[i] <= 1e7
  3. 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]的后面

猜你喜欢

转载自blog.csdn.net/qq_32424059/article/details/89438589