Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> PHP

Chương trình PHP tìm n số đầu tiên bị thiếu trong mảng

Ví dụ

<?php
function missing_values($my_arr, $len, $n) {
    sort($my_arr);
    $i = 0;
    while ($i < $n && $my_arr[$i] <= 0)
        $i++;
    $count = 0;
    $curr = 1;
    while ($count < $n && $i < $len) {
        if ($my_arr[$i] != $curr) {
            echo $curr . " ";
            $count++;
        } else
            $i++;
        $curr++;
    }
    while ($count < $n) {
        echo $curr . " ";
        $curr++;
        $count++;
    }
}
$my_arr = array(6, 8, 0);
$len = sizeof($my_arr);
$n = 5;
print_r("The missing values of the array are ");
missing_values($my_arr, $len, $n);
?>

Kết quả

The missing values of the array are 1 2 3 4 5

Giải thích

Hàm missing_values nhận mảng, độ dài, và số lượng số thiếu cần tìm. Mảng được sắp xếp. Biến $i khởi tạo 0, bỏ qua các phần tử <= 0. $count đếm số lượng đã tìm thấy, $curr bắt đầu từ 1. Duyệt mảng so sánh với $curr, nếu khác thì in ra (số thiếu), tăng count. Nếu cùng thì tăng i. Cuối cùng nếu chưa đủ n số thiếu, tiếp tục in các số tiếp theo.

Lưu ý: Code gốc có lỗi sort($my_arr, $len) - sort() chỉ nhận 1 tham số. Đã sửa trong phiên bản này.