<?phpclass Solution { public function threeSum($nums) { if (!$nums) return []; sort($nums); $ret = []; $count = count($nums); for ($i = 0; $i < $count - 2; $i++) { echo $i. ''; if ($i > 0 && $nums[$i] == $nums[$i - 1]) continue; $left = $i + 1; $right = $count - 1; $need = 0 - $nums[$i]; while($left < $right) { if ($nums[$left] + $nums[$right] == $need) { array_push($ret, [$nums[$i], $nums[$left], $nums[$right]]); while($left < $right && $nums[$left] == $nums[$left + 1]) $left++; while($left < $right && $nums[$right] == $nums[$right - 1]) $right--; $left++; $right--; } else if ($nums[$left] + $nums[$right] > $need) { $right--; } else { $left++; } } } return $ret; }}$nums = [-1, 1, 0, -1, 2, -4, 5, 6, -11];$cls = new Solution();$r = $cls->threeSum($nums);print_r($r);