题目描述:
有一名新生加入了合唱队,我们给他举办了一个非常大的欢迎仪式。欢迎过后,同学们想要给他安排一个合唱时,他需要站的位置。而合唱队是两面低,中间高的。
这个同学可能会站在左面或者右面,或者,他作为最高的一员,会站在之前最高的人的右面。如果这个同学不是最高的,他就听老师指定,站在左面也有可能是右面。
接下来,请你写一个程序,看看他最终会站在左面数第几个位置。
代码:
package lanqiao;
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
int[] arr = new int[n];
int max = arr[0],index = 0;
for(int i = 0;i < n;i ++)
{
arr[i] = sc.nextInt();
if(arr[i] > max)
{
index = i;
max = arr[i];
}
}
int k = sc.nextInt();
ArrayList<Integer> list = new ArrayList<>();
if(m > max)
System.out.println(index + 2);
else if(k == 1)
{
for(int i = 0;i < index;i ++){
list.add(arr[i]);
}
list.add(m);
Collections.sort(list);
for(int i = 0;i < list.size();i ++)
{
if(list.get(i) == m)
System.out.println(i + 1);
}
}
else{
for(int i = index + 1;i < arr.length;i ++)
{
if(m > arr[i]){
arr[i] = m;
System.out.println(i + 1);
break;
}
}
}
}
}