关于力扣第十六题:最接近的三数之和
题目描述:
给定一个包括 n 个整数的数组 nums
和 一个目标值 target
。找出 nums
中的三个整数,使得它们的和与 target
最接近。返回这三个数的和。假定每组输入只存在唯一答案。
和三数之和一样,先用的while循环,现在用的for循环,时间复杂度为O(n^2)
1 var threeSumClosest = function(nums, target) { 2 nums = nums.sort((a,b) => { return a-b }); 3 var i=0; 4 var num=nums[0]+nums[1]+nums[2]; 5 var and=num 6 for(var i=0;i<nums.length-2;i++){ 7 var k=nums.length-1 8 for(var j=i+1;j<nums.length-1&&j!=k;){ 9 sum=nums[i]+nums[j]+nums[k]; 10 if(Math.abs(target-sum)<=Math.abs(target-and)){ 11 and=sum 12 num=Math.abs(target-sum) 13 } 14 if(target-sum>0){ 15 j++; 16 } 17 else{ 18 k-- 19 } 20 } 21 } 22 return and; 23 };
作者:时来运转
大佬们好,我是Web前端菜鸟,初来乍到,想跟诸位共同学习成长;
综上是我每日闲时整理笔记,文章如有侵权请诸位及时告知我,谢谢关照!