• Java实现 LeetCode 506 相对名次


    506. 相对名次

    给出 N 名运动员的成绩,找出他们的相对名次并授予前三名对应的奖牌。前三名运动员将会被分别授予 “金牌”,“银牌” 和“ 铜牌”(“Gold Medal”, “Silver Medal”, “Bronze Medal”)。

    (注:分数越高的选手,排名越靠前。)

    示例 1:

    输入: [5, 4, 3, 2, 1]
    输出: [“Gold Medal”, “Silver Medal”, “Bronze Medal”, “4”, “5”]
    解释: 前三名运动员的成绩为前三高的,因此将会分别被授予 “金牌”,“银牌”和“铜牌” (“Gold Medal”, “Silver Medal” and “Bronze Medal”).
    余下的两名运动员,我们只需要通过他们的成绩计算将其相对名次即可。
    提示:

    N 是一个正整数并且不会超过 10000。
    所有运动员的成绩都不相同。

    class Solution {
         public String[] findRelativeRanks(int[] nums) {
            int len = nums.length;
            String[] result = new String[len];
            if (len<1)return result;
            //1、可以把数组转换成键值对(下标:成绩)按成绩排序,最后取出对应名次
            //2、分数总量不大,不超过10000,可以用计数排序
            int min = 0;
              for (int num : nums) {
                min = num>min?num:min;
            }
            int[] map = new int[min+1];
            for (int num : nums) {
                map[num]++;
            }
            //把map中每个分数对应的人数,转换成对应名次
            int rank = 1;int temp = 0;
            for (int i = min; i >= 0; i--) {
                if (map[i]!=0){
                    temp = map[i];
                    map[i] = rank;
                    rank += temp;
                }
            }
            //把名次映射成金银铜奖"Gold Medal", "Silver Medal", "Bronze Medal"
            String s = "";int value = 0;
            for (int i = 0; i < len; i++) {
                 value= map[nums[i]];
                switch (value){
                    case 1: s = "Gold Medal";break;
                    case 2: s = "Silver Medal";break;
                    case 3: s = "Bronze Medal";break;
                    default: s = String.valueOf(value);
                }
                result[i] = s;
            }
            return result;
        }
    }
    
  • 相关阅读:
    gridview的应用(删除)
    Javascript无刷新TreeView
    利用GridView显示主细表并添加打开、关闭功能
    UpdatePanel 控件简介
    Asp.net中使用fckeditor在线编辑器配置
    C#实现水晶报表绑定数据并实现打印
    Asp.net 2.0 Treeview 动态填充,并实现无限级树
    SQL数据库建表前期优化
    C#发送Email邮件方法总结
    ASP.NET防SQL注入脚本程序
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13074994.html
Copyright © 2020-2023  润新知