Artikel ini membawakan anda pengetahuan yang berkaitan tentang PHP terutamanya ia berkongsi dengan anda penyelesaian yang menarik untuk masalah algoritma. Terdapat contoh kod yang berminat boleh lihat di bawah.
Saya baru-baru ini melihatnya di Leetcode dan ia menarik perhatian.
Pautan asal: https://leetcode.cn/problems/contains-duplicate/
Soalan
Anda diberi nombor tatasusunan integer. Mengembalikan benar jika sebarang nilai muncul sekurang-kurangnya dua kali dalam tatasusunan mengembalikan palsu jika setiap elemen dalam tatasusunan adalah berbeza.
示例 1: 输入:nums = [1,2,3,1] 输出:true 示例 2: 输入:nums = [1,2,3,4] 输出:false 示例 3: 输入:nums = [1,1,1,3,3,4,3,2,4,2] 输出:true
Penyelesaian standard
function containsDuplicate($nums) { foreach($nums as $val){ if($repeat[$val] != ''){ return true; }else{ $repeat[$val] = $val; } } return false; }
Penyelesaian yang menarik
Prinsip: Gulung dua dadu seberapa banyak yang perlu , jika mereka sama, bermakna terdapat pertindihan.
function containsDuplicate($nums) { $total = count($nums); for ($i=0; $i < 100000; $i++) { $a = mt_rand() % $total; $b = mt_rand() % $total; if($a != $b && ($nums[$a] == $nums[$b])){ return true; } } return false; }
Pembelajaran yang disyorkan: "Tutorial Video PHP"
Atas ialah kandungan terperinci Kongsi penyelesaian PHP yang menarik kepada masalah algoritma. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!