Leetcode16 3Sum Closest
阿新 • • 發佈:2018-11-28
XSum系列很牛逼啊都,這個雖然和3Sum題目很像,但是思路又有一些不同,首先肯定是沿著3Sum的思路做。
import java.util.*; public class Sum3Closest16 { public int threeSumClosest(int[] nums, int target) { Arrays.sort(nums); int ans = nums[0]+nums[1]+nums[2]; for(int i=0;i<nums.length-2;i++) { int low=i+1,high=nums.length-1;while(low<high) { int sum = nums[i]+nums[low]+nums[high]; if(Math.abs(sum-target)<Math.abs(ans-target)) { ans=sum; } if(nums[low]+nums[high]>target-nums[i]) { high--; }else if (nums[low]+nums[high]<target-nums[i]) { low++; } else { ans=sum; return ans; } } } return ans; } }
時間O(n^2),25ms,13.54%—10ms,94.93%波動。
簡單瞟了下6ms答案,時間複雜度和我一樣,那這題就先這樣 吧~