我開始在leetcode上解決問題,這個問題沒有通過測試案例,這是我的嘗試:
function checkIfExist($arr) { $i = 0; $j = 0; $n = count($arr); // 循环遍历数组 for($i; $i < $n; $i++) { for($j; $j < $n; $j++) { // 检查元素i和j是否不相同且N*2 = M if ($i != $j && $arr[$i] * 2 == $arr[$j]) { return true; } } } return false; }
請問可以解釋一下我在這裡犯了什麼錯誤嗎?
P粉1166544952023-09-12 10:25:48
這應該可以工作,嘗試一下這個(它就像其中一種排序演算法)。這很奇怪,因為唯一的區別是$i
和$j
的初始化。
function checkIfExist($arr) { $n = count($arr); // 遍历数组 for($i = 0; $i < $n - 1; $i++) { for($j = $i + 1; $j < $n; $j++) { // 检查i和j的元素是否不相同且N*2 = M if ($i != $j && $arr[$i] * 2 == $arr[$j]) { return true; } } } return false; }
P粉3230507802023-09-12 00:14:39
在for迴圈中,$j和$i指標的初始化完成了工作
function checkIfExist($arr) { $n = count($arr); // 循环遍历数组 for($i = 0; $i < $n; $i++) { for($j = 0; $j < $n; $j++) { // 检查i和j元素是否不相同且N*2 = M if ($i != $j && $arr[$i] * 2 == $arr[$j]) { return true; } } } return false; }