牛客网刷编程题-美团-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的主要内容,如果未能解决你的问题,请参考以下文章