java打印前线程的id_[编程题] 打印出失序的线程ID--字节跳动笔试题

打印出失序的线程ID

题目描述

输入一个正整数n.表示接下来有n行数字,每行一个数字(不重复,可能无序),表示线程id,输出未出现的失序的线程ID

n的大小是小于等于2的32次方

示例

例如1:

输入(输入的线程ID不一定有序)

5

2

3

4

5

6

输出:

1

例如2:

输入:

4

1

2

3

4

输出:

5

Java代码

package ncompanydemos.p2_bytedance;

import java.util.Arrays;

import java.util.Scanner;

/**

* @author jiyongjia

* @create 2020/7/4 - 14:26

* @descp: 输入一个数n.表示接下来有n行数字,每行一个数字,表示线程id,输出未出现的失序的线程ID

*/

public class Exam01 {

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

int total = scanner.nextInt();

int[] arr = new int[total];

int cur;

for (int i = 0; i < total; i++) {

cur=scanner.nextInt();

arr[i] = cur;

}

//调用

int solve = solve(arr);

System.out.println(solve);

}

public static int solve(int[] arr){

//对数组排序、

Arrays.sort(arr);

//边界判断

if(arr.length!=1 && arr[0]!=1){

return 1;

}

int cur=0;

int next=0;

for (int i = 0; i < arr.length-1; i++) {

cur = arr[i];

next = arr[i+1];

if(next-cur==1){

continue;

}else{

return ++cur;

}

}

//边界判断

if(arr[arr.length-1]-arr[arr.length-2]==1){

return ++arr[arr.length-1];

}else{

return ++arr[arr.length-2];

}

}

}

测试输出

测试1:

输入:

5

2

3

1

6

4

输出:

5

测试2:

输入:

5

1

2

3

4

5

输出:

6

测试3:

f56e42acc7b92440606bf3e3f0e08765.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值