题目描述
输入
1,2,2
输出
2,0,1
- 我当时写的思路,先快排一次,然后循环遍历确定最后的位置
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String input = scanner.next();
String[] str = input.split(",");
int[] queue = new int[str.length];
for (int i = 0; i < str.length; i++) {
queue[i] = Integer.parseInt(str[i]);
}
int[] sorted = Arrays.copyOf(queue, queue.length);
Arrays.sort(sorted);
int[] res = new int[str.length];
Arrays.fill(res, -1);
int j = 0;
for (int i = sorted.length - 1; i >= 0; i--) {
for (; ; j++) {
if (j == queue.length) {
j = 0;
}
if (queue[j] == sorted[i] && res[j] == -1) {
break;
}
}
res[j] = sorted.length - i - 1;
}
for (int i = 0; i < res.length; i++) {
System.out.print(res[i]);
if (i != res.length - 1) {
System.out.print(",");
}
}
}
}