难度:easy
Java:
使用hashmap或者二维数组来存储score排序前的顺序就可以啦;
class Solution {
public String[] findRelativeRanks(int[] score) {
Map<Integer, Integer> map = new HashMap<>();
for (int i = 0; i < score.length; i++) {
map.put(score[i], i);
}
//降序排序
Arrays.sort(score);
String[] medals = {"Gold Medal", "Silver Medal", "Bronze Medal"};
String[] ans = new String[score.length];
for (int i = 0; i < score.length; i++) {
if (i >= score.length - 3) {
ans[map.get(score[i])] = medals[score.length - i - 1];
} else {
ans[map.get(score[i])] = Integer.toString(score.length - i);
}
}
return ans;
}
}
复杂度分析:
- 时间复杂度:O(nlogn)
- 空间复杂度:O(n)