zoukankan      html  css  js  c++  java
  • 506. Relative Ranks

    原文题目:

    506. Relative Ranks

    解题:

    思路就是,先将原数组排序,如[21,8,9,10,11]降序排序后为[21,11,10,9,8] 建立map关系{21:0,11:1,10:2,9:3,8:4},然后遍历原数组[21,8,9,10,11]获取相应key对应的value,即可知道排名,然后0,1,2,替换为金银铜,其他的替换为相应的4,5,6即可

    AC代码:

    class Solution {
    public:
    	vector<string> findRelativeRanks(vector<int>& nums) 
    	{
    		vector <string> vec;
    		vector <int> tmp;
    		map <int,int> m;
    		int idx = 0;
    		tmp = nums;
    
    		sort(tmp.begin(),tmp.end(),greater<int>()); //降序排列
    		for(idx = 0; idx < tmp.size();idx++)
    		{
    			m[tmp[idx]] = idx;         //将排序后的数值和索引建立map
    		}
    		for(idx = 0; idx < nums.size();idx++) //遍历原先的nums数组,如果其对应的是0,1,2则替换,如果不是则用map对应的值+1即可(下标从0开始,故加1)
    		{
    			if(m[nums[idx]] == 0)
    			{
    				vec.push_back("Gold Medal");
    			}
    			else if(m[nums[idx]] == 1)
    			{
    				vec.push_back("Silver Medal");
    			}
    			else if(m[nums[idx]] == 2)
    			{
    				vec.push_back("Bronze Medal");
    			}
    			else
    			{
    				vec.push_back(to_string(m[nums[idx]]+1));
    			}
    		}
    
    		return vec;
    
    
    	}
    };
    

      

  • 相关阅读:
    Nginx配置文件详解
    Mycat概述
    日志切割之Logrotate
    js数组(二)
    js数组(一)
    sass颜色
    scss
    HTML5新属性
    HTML5新元素
    Bootstrap
  • 原文地址:https://www.cnblogs.com/xqn2017/p/8782846.html
Copyright © 2011-2022 走看看