1234567891011121314151617181920212223242526 |
- func findRelativeRanks(nums []int) []string {
- idx2num := make(map[int]int)
- for i := range nums {
- idx2num[i] = nums[i]
- }
- sort.Sort(sort.Reverse(sort.IntSlice(nums)))
- num2rank := make(map[int]int)
- for i := range nums {
- num2rank[nums[i]] = i
- }
- res := make([]string, len(nums))
- for i := range res {
- rank := num2rank[idx2num[i]]
- switch rank {
- case 0:
- res[i] = "Gold Medal"
- case 1:
- res[i] = "Silver Medal"
- case 2:
- res[i] = "Bronze Medal"
- default:
- res[i] = strconv.Itoa(rank + 1)
- }
- }
- return res
- }
|