2021/03/08阿里在线笔试—题目一复盘

题目原生

        第一题:https://leetcode-cn.com/problems/kth-missing-positive-number/ 第 k 个缺失的正整数

        第二题:https://leetcode-cn.com/problems/profitable-schemes/  879. 盈利计划


题目一:

n张卡片,无重复值,升序排列,从第一张卡片的值开始第k个在卡片中未出现的正整数为多少,并进行返回

(leetcode原题目:一个严格升序排列的正整数数组arr和一个整数k,找到这个数组里第k个缺失的正整数。——相当于从1开始计算,不需要从第一张卡片的值开始计K)


首先从最原始的题目考虑,找到第k个缺失的正整数。最直接的方式就是枚举:

        用一个变量 current 表示当前应该出现的数,从 1 开始,每次循环都让该变量递增。用一个指针 pr 指向数组中没有匹配的第一个元素,每轮循环中将该元素和 current 进行比较,如果相等,则指针后移,否则指针留在原地不动,说明缺失正整数 current。用 missCount 变量记录缺失的正整数的个数,每次发现有正整数缺失的时候,该变量自增,并且记录这个缺失的正整数,直到找到第 k 个缺失的正整数。

import java.util.*;
import java.util.Scanner;

public class Main_1 {
	
	// n张卡片,无重复值,升序排列,想知道从第一张卡片的值开始第k个在卡片中未出现的正整数为多少,并进行
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值