Reference Leetcode (3Sum)
classSolution { Public:intThreesumclosest ( vector<int>& Nums,intTarget) {sort (Nums.begin (), Nums.end ());intdiffer;intLength = Nums.size ();BOOLMark =true; for(inti =0; I < length-2; i++) {intSecondtarget = Target-nums[i];intStart = i +1;intEnd = Length-1; for(; start < end;) {if(Mark) {differ = Nums[start] + nums[end]-secondtarget;if(differ = =0) Break; Mark =false;if(Nums[start] + nums[end]-Secondtarget <0) start++;if(Nums[start] + nums[end]-secondtarget >0) end--; }Else{if(ABS(Nums[start] + nums[end]-Secondtarget) <ABS(differ)) differ = Nums[start] + nums[end]-secondtarget;if(differ = =0) Break;if(Nums[start] + nums[end]-Secondtarget <0) start++;if(Nums[start] + nums[end]-secondtarget >0) end--; } }if(differ = =0) Break; }returnTarget + differ; }};
Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.
Leetcode (3Sum Closest)