题目: PHP把数组排成最小的数
描述:
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
<?php
function PrintMinNumber($numbers)
{
usort($numbers, function($a,$b){
if("$a$b" > "$b$a") return 1;
return -1;
});
return implode("",$numbers);
}
题目:PHP 的 丑数
描述:
把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。
<?php
function GetUglyNumber_Solution($index)
{
if($index==0)
return 0;
if($index==1)
return 1;
$f=[1];
$index2=0;
$index3=0;
$index5=0;
for($i=1;$i<$index;$i++)
{
$f[$i]=min($f[$index2]*2,$f[$index3]*3,$f[$index5]*5);
if ($f[$i]==$f[$index2]*2)
$index2++;
if ($f[$i]==$f[$index3]*3)
$index3++;
if ($f[$i]==$f[$index5]*5)
$index5++;
}
return end($f);
}