栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

506. 相对名次

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

506. 相对名次

力扣打卡:506. 相对名次

解题思路

要求得到名次和在对应的位置上进行标注

  • TreeMap的自动排序功能
  • TreeMap的 key 记录成绩,也就是 score[i]
  • TreeMap的 value 记录序号,也就是 i
  • 对TreeMap进行迭代遍历,取出 value,在 ans[entry.getValue] 上标注名次

注意:TreeMap的默认排序是升序

时间复杂度为 O(2*n)

代码
class Solution {
    public String[] findRelativeRanks(int[] score) {
        // 无任何重复成绩,又要得到序号,那么想到TreeMap,所有操作的时间复杂度都是log(n)
        TreeMap tree = new TreeMap<>();
        int idx = 0;
        String[] ans = new String[score.length];
        for(int x: score) tree.put(x,idx++);
        idx = 0 ;
        for(Map.Entry entry :tree.entrySet()){ // TreeMap的迭代是有序的,treeMap的默认排序是从小到大的
            int n = score.length-idx; // 第几名,注意不是从0开始的
            switch(n){
                case 1:
                    ans[entry.getValue()] = "Gold Medal";
                    break;
                case 2:
                    ans[entry.getValue()] = "Silver Medal";
                    break;
                case 3:
                    ans[entry.getValue()] = "Bronze Medal";
                    break;
                default:
                    ans[entry.getValue()] = n+"";

            }
            idx++;
        }
        return ans;
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/631605.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号