为了账号安全,请及时绑定邮箱和手机立即绑定

输入一个数组和一个数,判断数组中是否存在三个数的和等于这个数

输入一个数组和一个数,判断数组中是否存在三个数的和等于这个数

幕布斯7119047 2018-11-13 14:14:29
题目描述输入一个数组和一个数,判断数组中是否存在三个数的和等于这个数
查看完整描述

1 回答

?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

var target=27;
var arr=[2,4,6,3,7,23,6,25,34,43,1,15,12,32,26,18,16];
for(var i=0;i<arr.length-3;i++){
    for(var j=i+1;j<arr.length-2;j++){
        for(var k=j+1;k<arr.length-1;k++){
            if(arr[i]+arr[j]+arr[k]==target){
                return true;
            }
        }
    }
}

重新写了个算法:

var target=17;var arr=[1,21,1,3,2,9,10,11,19,17,6,7,12,16,16,1];
arr=arr.sort();//[1,1,1,2,3,6,7,9,10,11,12,16,16,17,19,21]for(var i=arr.length-1;i>1;i--){    if(arr[i]>=target) continue;    for(var j=0;j<i-1;j++){        if(arr[i]+arr[j]>=target) break;        for(var k=j+1;k<i;k++){            var sum=arr[i]+arr[j]+arr[k];            if(sum==target) return true;            if(sum>target) break;
        }
    }
}


查看完整回答
反对 回复 2018-11-13
  • 1 回答
  • 0 关注
  • 1018 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信