Leetcode PHP題解--D115 506. Relative Ranks

D115 506. Relative Ranks

題目連接

506. Relative Ranksphp

題目分析

給定一個積分表,對前三名顯示Gold/Silver/Bronze Medal,剩餘的直接顯示名次。.net

思路

首先保留索引給積分表排序,再用range生成名次把前三條替換成指定文字。以後使用array_combine和ksort把二者結合就行了。code

最終代碼

<?php
class Solution {

    /**
     * @param Integer[] $nums
     * @return String[]
     */
    function findRelativeRanks($nums) {
        arsort($nums);
        $sortedKeys = array_keys($nums);
        $amount = count($nums);
        $rankName = array_merge(["Gold Medal", "Silver Medal", "Bronze Medal"],range(4, $amount));
        $rankName = array_slice($rankName,0,$amount);
        $rank = array_combine($sortedKeys, $rankName);
        ksort($rank);
        $orderedRank = array_map(function($value){
            return strval($value);
        },$rank);
        return $orderedRank;
    }
}

若以爲本文章對你有用,歡迎用愛發電資助。排序

相關文章
相關標籤/搜索