class Solution {
public String[] findRelativeRanks(int[] nums) {
//思路是先用map记录每个数字出现的位置,然后将数组排序,排序完名次也就出现了,根据map找到该数字的位置,放入名次就可以了
String[] result=new String[nums.length];
Map<Integer,Integer> map=new HashMap<>();
for(int i=0;i<nums.length;i++){
map.put(nums[i],i);
}
Arrays.sort(nums);
for(int i=0;i<nums.length;i++){
if(nums.length-i>3){
result[map.get(nums[i])]=Integer.toString(nums.length-i);
}else{
//把if放到这里面,会让程序快一些,但是用case,defaul 程序会更简洁
if(nums.length-i==3)
result[map.get(nums[i])]="Bronze Medal";
if(nums.length-i==2)
result[map.get(nums[i])]="Silver Medal";
if(nums.length-i==1)
result[map.get(nums[i])]="Gold Medal";
}
}
return result;
}
}
//%74.22 99.13
leetcodeNo.506 相对名次
最新推荐文章于 2022-03-17 13:40:13 发布