力扣练习题(1)
监督自己每日一练,欢迎讨大佬们一起指点批评。
<?php
//统计数组个数,并返回前k个出现频率最高的数
function count_char($nums, $k)
{
$countArr = [];
$len = count($nums);
for ($i = 0; $i < $len; $i++) {
//判断键值是否存在
if (!array_key_exists($nums[$i], $countArr)) {
//若是没有数组没有此键 则设置为0
$countArr[$nums[$i]] = 0;
} else {
$countArr[$nums[$i]] = $countArr[$nums[$i]] + 1;
}
}
//根据值进行排序并保持索引关联 arsort
arsort($countArr);
//取出前 k 位
$newArr = [];
foreach ($countArr as $ka => $v) {
if ($k-- > 0) {
array_push($newArr, $ka);
}
}
return $newArr;
}
$nums = [3,3,1,1,0];
echo "<pre>";
print_r(count_char($nums, 2));