Bagaimana untuk mengira jumlah dua nombor dalam tatasusunan yang sama dengan nilai tetap dalam PHP

PHPz
Lepaskan: 2023-04-20 14:33:12
asal
666 orang telah melayarinya

PHP ialah bahasa skrip sebelah pelayan yang biasa digunakan Kami sering menggunakan tatasusunan semasa proses pembangunan. Dalam tatasusunan, kita akan menghadapi beberapa masalah, seperti cara mengira gabungan dua nombor dalam tatasusunan yang jumlahnya bersamaan dengan nilai tetap. Ini adalah masalah yang sangat biasa, dan artikel ini akan memperkenalkan cara menyelesaikannya.

1. Penerangan Masalah

Memandangkan nombor tatasusunan integer dan sasaran integer, cari dua nombor dalam tatasusunan yang jumlahnya sama dengan sasaran.

Sebagai contoh, diberi nombor = [2, 7, 11, 15], sasaran = 9, kerana nombor [0] + nombor [1] = 2 + 7 = 9, jadi [0, 1] ialah dikembalikan.

2. Penyelesaian

Kita boleh menggunakan kaedah gelung berganda untuk menyelesaikan masalah ini, tetapi kerumitan masa terlalu tinggi dan ia tidak cukup cekap. Berikut ialah kaedah yang lebih cekap: menggunakan jadual cincang.

Kita boleh menyimpan nombor yang dilalui ke dalam jadual cincang dan menentukan sama ada terdapat nombor lain dalam jadual cincang yang sama dengan sasaran tolak nombor semasa. Jika ia wujud, anda boleh mendapatkan jumlah dua nombor sebagai sasaran.

Pelaksanaan khusus adalah seperti berikut:

function twoSum($nums, $target) {
    $map = [];
    $len = count($nums);

    for ($i = 0; $i < $len; $i++) {
        $diff = $target - $nums[$i];
        if (isset($map[$diff])) {
            return [$map[$diff], $i];
        }
        $map[$nums[$i]] = $i;
    }
    return [-1, -1];
}

$nums = [2, 7, 11, 15];
$target = 9;
$res = twoSum($nums, $target);
print_r($res);
Salin selepas log masuk

3 Penerangan kod

1 .

2. Kemudian, kami mentakrifkan tatasusunan $nums dan nilai sasaran $target, dan $len ialah panjang tatasusunan.

3 Seterusnya, kita menggunakan gelung for untuk melintasi tatasusunan $nums Setiap kali nombor dilalui, hasil penolakan nombor daripada nilai sasaran $diff dikira.

4 Jika terdapat satu lagi nombor dalam $map bersamaan dengan $diff, ini bermakna jumlah dua nombor ialah $target, dan kita boleh mengembalikan indeks kedua-dua nombor ini.

5 Jika ia tidak wujud, simpan nombor yang dilalui ke dalam $map dan teruskan ke kitaran seterusnya.

6 Akhir sekali, jika tiada kombinasi nombor yang memenuhi keperluan ditemui semasa keseluruhan gelung, [-1, -1] akan dikembalikan.

4. Ringkasan

Artikel ini memperkenalkan penggunaan jadual cincang untuk menyelesaikan masalah bahawa jumlah dua nombor dalam tatasusunan PHP adalah sama dengan nilai tetap. Dengan menggunakan jadual cincang, kita boleh mencari kombinasi nombor yang memenuhi keperluan dalam satu gelung, dengan kerumitan masa O(n).

Selain itu, kita juga perlu memberi perhatian kepada beberapa kes tepi, seperti kes di mana tatasusunan kosong dan panjangnya ialah 1.

Saya harap artikel ini dapat membantu pembaca yang baru mengenali php.

Atas ialah kandungan terperinci Bagaimana untuk mengira jumlah dua nombor dalam tatasusunan yang sama dengan nilai tetap dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!