給定一個積分表,對前三名顯示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; } }
若以爲本文章對你有用,歡迎用愛發電資助。排序