美文网首页收藏
1539. 第 k 个缺失的正整数

1539. 第 k 个缺失的正整数

作者: spark打酱油 | 来源:发表于2022-07-28 15:22 被阅读0次

解题思路

1.知识点

  • 方法一:枚举
    思路与算法
    我们可以顺序枚举。
    枚举法
    由于数组是严格递增的,所以可以认为一个不缺失的数组是从1开始的:nums = [1,2,3,4,...].我们可以从头遍历arr数组,并以不缺失数组为基准进行对比,具体来说:
    初始化基准 pivot = 1,并令i = 1从头遍历数组arr。
    若当前arr[i] == pivot,说明当前i位置之前都不缺元素,继续向后遍历i++,
    否则说明缺失正整数pivot,用一个变量count记录已经找到的缺失个数,count++,直到找到第k个缺失的正整数。

  • 变量注解
    var count = 0 // 缺失个数
    var pivot = 1 // 当前应该出现的数
    var index = 0 // 数组指针

2.代码

object Solution {
    def findKthPositive(arr: Array[Int], k: Int): Int = {
    var count = 0
    var pivot = 1
    var index = 0
    while (count<k){
      if(arr(index)==pivot){
        if((index+1<arr.length)){
          index = index+1
        }else index = index
      } else count=count+1
      pivot=pivot+1
    }
    return pivot-1
  }
}

3.复杂度

  • 时间复杂度: O(n+k), n是数组长度,k是最坏情况下遍历完数组还没有缺失,则还需要再对count累加k次.
  • 空间复杂度: O(1),仅使用常数空间

相关文章

  • 1539. 第 k 个缺失的正整数

    解题思路 1.知识点 方法一:枚举思路与算法我们可以顺序枚举。枚举法由于数组是严格递增的,所以可以认为一个不缺失的...

  • LeetCode 第 k 个缺失的正整数

    给你一个 严格升序排列 的正整数数组 arr 和一个整数 k 。 请你找到这个数组里第 k 个缺失的正整数。 示例...

  • Codeforces 1352B - Same Parity S

    夕阳一线天。 翻译 给你两个正整数 n 和 k。n 是 k 个正整数的和,并且要求 k 个整数同是奇数或者偶数。 ...

  • LeetCode 343. 整数拆分

    题目 给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k >= 2 ),并使这些整数的乘积最大化。返回你...

  • leetcode 5484 找出第 N 个二进制字符串中的第 K

    5484. 找出第 N 个二进制字符串中的第 K 位 给你两个正整数 n 和 k,二进制字符串 Sn 的形成规则...

  • k倍多重正整数集合

    k倍多重正整数集合的定义是:在一个多重集合(元素可以重复)中,不存在一个正整数是另一个正整数的k倍。 现在小M有n...

  • 算法:给出一个字符串代表的正整数和一个整数k,输出删除k个数字之

    给出一个字符串代表的正整数A和一个整数k(K<=n),删除其中的k位数字,使得剩下的数字产生最小的正整数。例如:A...

  • 3. 数组

    41. First Missing Positive 找到第一个缺失的正整数,每个正整数放在n-1的下标上。 73...

  • 1015. 可被 K 整除的最小整数

    题目: 给定正整数 k ,你需要找出可以被 k 整除的、仅包含数字 1 的最 小 正整数 n 的长度。 返回 n ...

  • K数和

    题目: 给定n个不同的正整数,整数k(k < = n)以及一个目标数字。 在这n个数里面找出K个数,使得这K个数的...

网友评论

    本文标题:1539. 第 k 个缺失的正整数

    本文链接:https://www.haomeiwen.com/subject/iarxwrtx.html