zoukankan      html  css  js  c++  java
  • [编程题] 打印出失序的线程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:

    image-20200704145811307

  • 相关阅读:
    oracle 12C linux centos7.5 安装 12C
    FizzBuzz
    批量判断能否telnet登录
    统计所有机器的挂载情况
    ffmpeg windows vs library 下载地址
    需求文档测试
    接口测试分析
    chrome网页截图
    不要为了测试写一个新系统
    C# 判断是否为数字
  • 原文地址:https://www.cnblogs.com/jiyongjia/p/13234932.html
Copyright © 2011-2022 走看看