前端面试题(数组中求和)

来源:互联网 发布:剑网三咩萝捏脸数据 编辑:程序博客网 时间:2024/05/22 04:59
//求数组中的固定任意两个数的和
//前提已经升序排列好的
var arr3=[1,2,4,6,9,10,12,15,17];
        //i                   j
//定义任意两个数相加的和为19;
var sum=19;
//双向循环遍历,从两头向中间走
for(var i=0,j=arr3.length-1;i<j;){
    //如果i+j的值大于sum
    if(arr3[i]+arr3[j]<sum)
    //则i往后走一位
    i++;
    //否则如果i+j的值小于sum
    else if(arr3[i]+arr3[j]>sum)
    //则j往前走一位
    j--;
    //否则如果i+j的值等于sum
    else{
        console.log(arr3[i],arr3[j]);
        //则输出所有等于sum 的值
        i++;j--;
    }
}