一組數中尋找不重複的三元組

給定一個包含n個整數的數組nums 判斷nums中是否存在三個元素a,b,c,使得
a+b+c=0?找出所有滿足條件且不重複的三元組
注意:答案中不可以包含重複的三元組。

使用PHP實現。
php 5.2.9 版本增加了array_unique對多維數組的支持,在處理多維數組是需要設置sort_flags參數
一維數組的重複項:
使用array_unique函數即可,使用實例如下:
使用方法:array_unique($result, SORT_REGULAR);

$list = [-1, 0, 1, 2, -1, 4];
$len = count($list);
if ($len < 3) {
    return;
}
$result = [];
for ($i = 0; $i < $len - 2; $i++) {
    for ($j = 1; $j < $len - 1; $j++) {
        for ($k = 2; $k < $len; $k++) {
            if ($list[$i] + $list[$j] + $list[$k] == 0) {
                $item = [];
                $item[] = $list[$i];
                $item[] = $list[$j];
                $item[] = $list[$k];
                $result[] = $item;
            }
        }

    }
}
$result = array_unique($result, SORT_REGULAR);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章