示例:輸入乙個陣列找出三個數a,b,c滿足a+b+c=0。
輸出:0,1,-1
0,2,-2
3,-1,-2
演算法思想:
1,先排序
2,在從前往後找,大的左移,小的右移。
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.threading.tasks;
}public static void sort(listarr)
arr[j] = t;}}
public static list> threesum(listnums)
}} // while(j陣列,結果輸出的時候還要巢狀迴圈。
呵呵~只為了記錄一下~
三個數的和為0
給出乙個長度為n的無序陣列,陣列中的元素為整數,有正有負包括0,並互不相等。從中找出所有和 0的3個數的組合。如果沒有這樣的組合,輸出no solution。如果有多個,按照3個數中最小的數從小到大排序,如果最小的數相等則按照第二小的數排序。input 第1行,1個數n,n為陣列的長度 0 n 10...
從陣列中找出乘積最大的三個數
題目 給定乙個無序陣列,包含正數 負數和0,要求從中找出3個數的乘積,使得乘積最大,要求時間複雜度 o n 空間複雜度 o 1 輸入描述 無序整數陣列a n 輸出描述 滿足條件的最大乘積 輸入例子1 3 4 1 2 輸出例子1 24 思路 由於空間複雜度和時間複雜度的要求,肯定無法先排序,因為排序最...
在陣列中找出3個數使得它們和為0
給定乙個集合s,試找出3個數a,b,c,使得a b c 0。也即從集合中找出所有的和為0的3個數。例如 集合s 則滿足條件的3個數有2對 1,0,1 和 1,2,1 注意 1,1,0 與 1,0,1 算同乙個解,所以不用重複考慮。當然該例子集合的解也可以寫成 0,1,1 和 2,1,1 這個問題也被...