牛客网刷编程题-美团-1

Posted 尚墨1111

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了牛客网刷编程题-美团-1相关的知识,希望对你有一定的参考价值。

美团:[编程题]正则序列

import java.util.*;

public class Main{
    public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    int[] dp = new int[n];
    for(int i =0;i<n;i++){
        dp[i] = sc.nextInt();
    }
    
    //输入5,得到的序列要满足[1 2 3 4 5],只是顺序可以不考虑
    Arrays.sort(dp);
    int count = 0;
    for(int i =0;i<n;i++){
       count+=Math.abs(dp[i]-i-1);
    }
    System.out.print(count);
    }
}

美团:[编程题]淘汰分数,90%通过用例

import java.util.Scanner;
import java.util.Arrays;

public class Main{
    public static void  main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = input.nextInt();//总人数
        int x = input.nextInt();//晋升、淘汰人数下限
        int y = input.nextInt();//晋升、淘汰人数上限
        int[] score = new int[n];
        for(int i = 0;i<n;i++){
            score[i] = sc.nextInt();
        }
        if(n<2*x || n>2*y){//如果数组太长,总会有一边多于y
            System.out.print(-1);
            return;
        }
        Arrays.sort(score);
        
		//二分淘汰人数,因为要找到最小值
        int left = x;
        int right = y+1;
        while(left<right){
            int mid = left+(right-left)/2;
            if(n-mid>=x && n-mid<=y){
                right = mid;
            }else{
                left = mid+1;
            }
        }
        System.out.print(score[left-1]);
    }
}

以上是关于牛客网刷编程题-美团-1的主要内容,如果未能解决你的问题,请参考以下文章

Python牛客网刷题-Day1

牛客网刷题记录 || 第一番

牛客网刷题知识汇总3

牛客网刷基础题错题集

牛客网刷题——JAVA

牛客网刷题知识汇总2