Topic:
0= [-1012,-1,-4], the ternary set that satisfies the requirement is: [ [ -101], [-1,-12]]
Problem Solving Ideas:
classSolution { Public:/*vector<vector<int>> threesum (vector<int>& nums) {sort (Nums.begin (), Nums.end ()); vector<vector<int>> Res; int len = Nums.size (); if (Nums.size () < 3) {return res; } for (int i = nums.size () -1;i >=2;--i) {for (int j = i-1;j >= 1;--j) {for (in t k = j-1;k >=0;--k) {if (Nums[i] + nums[j] + nums[k] = = 0) {vector<int> tmp Tmp.push_back (Nums[i]); Tmp.push_back (Nums[j]); Tmp.push_back (Nums[k]); Res.push_back (TMP); }}}} return res; }*/ intBinarySearch (vector<int>& Nums,intTargetintStartintend) { if(Start >end) { return-1; } while(Start <=end) { intMid = (start + end)/2; if(Nums[mid] = =target) { returnmid; } if(Nums[mid] >target) {End= Mid-1; } if(Nums[mid] <target) {Start= Mid +1; } } return-1; } BOOLFindtree (vector<vector<int>> Nums,intAintBintc) { for(inti =0; i < nums.size (); ++i) { if(nums[i][0] = = a &&nums[i][1] = = B &&nums[i][2] ==c) { return true; } } return false; } Vector<vector<int>> Threesum (vector<int>&nums) {Vector<vector<int>>Res; intLen =nums.size (); inttarget =0; if(Len <3){ returnRes; } sort (Nums.begin (), Nums.end ()); for(inti =0; I < len-2; ++i) { if(I >0&& nums[i-1] ==Nums[i]) { Continue; } for(intj = i +1, k = Len-1; J <K;) {if(J > i +1&& Nums[j] = = nums[j-1]) {J++; Continue; } if(K < Len-1&& Nums[k] = = nums[k+1]) {k--; Continue; } intsum = Nums[i] + nums[j] +Nums[k]; if(Sum >target) {k--; }Else if(Sum <target) {J++; }Else{vector<int>tmp; Tmp.push_back (Nums[i]); Tmp.push_back (Nums[j]); Tmp.push_back (Nums[k]); Res.push_back (TMP); J++; K--; } } } returnRes; }};
"Intermediate algorithm" 1. Three number of the sum