1539. Kth Missing Positive Number

一边遍历一边记录已经 miss 了多少个正整数(或者干脆记录还有多少个正整数要miss),等超过k时倒着往回扣即可。可能遍历完 array 都没有 miss 足够多,那就要直接再往后数。

class Solution:
    def findKthPositive(self, arr: List[int], k: int) -> int:
        prev = 1 # previous positive integer
        for n in arr:
            k -= (n-prev) # how many ones missed
            if k <= 0:
                return n+k-1
            prev = n+1
        return arr[-1]+k

Last updated

Was this helpful?