题目:找出数组中的所有三元组a,b,c使得a+b+c = 0,所有的三元组不能重复
提供一个复杂度O(n2)的代码,复杂度为O(n3)会超时。
1 int cmp(const void *a, const void *b){ 2 return *((int*)a) - *((int*)b); 3 } 4 5 int** threeSum(int* nums, int numsSize, int* returnSize) { 6 int i,j,k; 7 int **results = (int**)malloc(sizeof(int*)*100000); 8 int temp[3]; 9 *returnSize = 0;10 qsort(nums, numsSize, sizeof(int), cmp);11 for(i=0; i-nums[i])17 k--;18 else{19 results[*returnSize] = (int*)malloc(sizeof(int)*3);20 results[*returnSize][0] = nums[i];21 results[*returnSize][1] = nums[j];22 results[*returnSize][2] = nums[k];23 do{j++; }while(j