1 回答

TA貢獻(xiàn)1802條經(jīng)驗 獲得超5個贊
我確信有一種更有效的方法可以完成它,但這里有一些可以幫助您繼續(xù)下去的方法。它仍然會循環(huán)最多 100,000 次,這已經(jīng)是相當(dāng)多了。
function solution($array) {
$i = 1;
while (in_array($i, $array)) $i++;
return $i;
}
編輯:這是一個更優(yōu)化的解決方案,不使用in_array:
function solution($array) {
// sort from smallest to largest
sort($array);
// try to find a positive break in the sequence
$last = 0;
if (end($array) > 0) {
foreach ($array as $current) {
if ($current == $last) continue; // duplicate
if ($current != $last + 1 && $current > 0) break;
$last = $current;
}
}
return $last + 1;
}
- 1 回答
- 0 關(guān)注
- 94 瀏覽
添加回答
舉報