从N个数中取出三个数,求有多少种三个数的和是0?
很容易想到如下代码
public static int count (int[]a){
int count=0;
int N=a.length;
for(int i=0;i<N;i++){
for(int j=i+1;j<N;j++){
for(int k=j+1;k<N;k++){
if(a[i]+a[j]+a[k]==0){
count++;
}
}
}
}
return count;
}
很容易想到从n个数中确三个数的组合共
n(n-1)(n-2)
但是其顺序有 种
所以其算法复杂度为
n(n-1)(n-2)/
=