這篇文章為大家帶來了關於php的相關知識,其中主要跟大家分享一道算法題的趣味解法,有程式碼範例,有興趣的朋友下面一起來看一下吧,希望對大家有幫助。
最近在 Leetcode 上看到的,給人眼前一亮的感覺。
原文連結:https://leetcode.cn/problems/contains-duplicate/
題目
給你一個整數陣列 nums 。若任一值在陣列中出現 至少兩次 ,則傳回 true ;如果陣列中每個元素互不相同,則傳回 false 。
示例 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
標準解法
function containsDuplicate($nums) { foreach($nums as $val){ if($repeat[$val] != ''){ return true; }else{ $repeat[$val] = $val; } } return false; }
趣味解法
原理:擲兩顆骰子,次數夠多,有相同的話,說明是有重複的。
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; }
推薦學習:《PHP影片教學》
以上是分享一道算法題的PHP趣味解法的詳細內容。更多資訊請關注PHP中文網其他相關文章!