题目
类型:Array
解题思路
先对 score 数组进行拷贝并排序,利用分数各不相同,对排序数组中分值进行名次编号(存入哈希表),再利用名次编号构造答案。
代码
class Solution {public String[] findRelativeRanks(int[] score) {int n = score.length;String[] desc = {"Gold Medal", "Silver Medal", "Bronze Medal"};int[][] arr = new int[n][2];for (int i = 0; i < n; ++i) {arr[i][0] = score[i];arr[i][1] = i;}Arrays.sort(arr, (a, b) -> b[0] - a[0]);String[] ans = new String[n];for (int i = 0; i < n; ++i) {if (i >= 3) {ans[arr[i][1]] = Integer.toString(i + 1);} else {ans[arr[i][1]] = desc[i];}}return ans;}}
