今天刷的题是LeetCode第16题,该题跟上一题很像,依然是可以暴力法和先排序再解决的方法
具体地我的代码是:
public static int solution(int[] nums, int target) { Arrays.sort(nums); int num=nums[1]+nums[0]+nums[2]; for(int i=0;i<nums.length-2;i++){ int a=i+1; int b=nums.length-1; while(a<b){ int sum=nums[i]+nums[a]+nums[b]; if(Math.abs(sum-target)<Math.abs(num-target)){ num=sum; } if(sum>target){ while (a<b && nums[b] == nums[b-1]) b--; b--; }else if(sum<target){ while (a<b && nums[a] == nums[a+1]) a++; a++; }else{ return target; } } } return num; }
原文:https://www.cnblogs.com/cquer-xjtuer-lys/p/11448935.html