题目描述:
有一名新生加入了合唱队,我们给他举办了一个非常大的欢迎仪式。欢迎过后,同学们想要给他安排一个合唱时,他需要站的位置。而合唱队是两面低,中间高的。
这个同学可能会站在左面或者右面,或者,他作为最高的一员,会站在之前最高的人的右面。如果这个同学不是最高的,他就听老师指定,站在左面也有可能是右面。
接下来,请你写一个程序,看看他最终会站在左面数第几个位置。
代码:
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;}}}}
}