LeetCode 的算法題 PHP解法記錄
給定一個包含 n 個整數(shù)的數(shù)組 nums,判斷 nums 中是否存在三個元素 a,b戒劫,c ,使得 a + b + c = 0 婆廊?找出所有滿足條件且不重復(fù)的三元組迅细。
注意:答案中不可以包含重復(fù)的三元組。
例如, 給定數(shù)組 nums = [-1, 0, 1, 2, -1, -4]淘邻,
滿足要求的三元組集合為:
[
[-1, 0, 1],
[-1, -1, 2]
]
解:
$a=array(
-1, 0, 1, 2, -1, -4
);
function threeCount($arr){
// 遍歷全部的三個數(shù)組合
$res=array();
for($n=0;$n<count($arr)-2;$n++){
for($i=$n+1;$i<count($arr)-1;$i++){
for ($j = $i+1; $j < count($arr) ; $j++) {
$res[]=array($arr[$n],$arr[$i],$arr[$j]);
}
}
}
// 取結(jié)果0 茵典,去重
$data=array();
$check=array();
foreach ($res as $key => $value) {
if(array_sum($value) == 0){
$ch=$value;
sort($ch);
$str=implode($ch);
if(in_array($str,$check)){
continue;
}else{
$check[] =$ch;
}
$data[] = $value;
}
}
var_dump($data);
var_dump($check);
}
threeCount($a);