Average pair

两数相加平均数

必须是被排序好的应用在找寻有哪些配对符合所要的数值
接下来让我们实作吧!!!

迴圈版BigO(n^2)

let array1 = [-11,0,1,2,3,4,5,6,7,8]let iunputavg = 2function Average(array, avg){    let result = []     for(let i = 0; i < array.length -1; i++){        for(let j = 1; j < array.length -1; j++){ //index0已经当root了 所以j从index1开始即可            if((array[i] + array[j]) /2 === avg){ //相加/2 === avg                result.push([array[i],array[j]])            }        }       }return result}console.log(Average(array1, iunputavg))//[ [ 0, 4 ], [ 1, 3 ], [ 2, 2 ], [ 3, 1 ], [ 4, 0 ] ]

Pointer BigO(n)

let array1 = [-11,0,1,2,3,4,5,6,7,8]let iunputavg = 2function AveragePointer(array, avg){    let left = 0    let right = array.length -1     let result = []    while(array[right] > array[left]){ //当index[i] > index[i-1] = true才执行        if(((array[right] + array[left]) /2) > avg){            right --    //若大于目标值 代表右边範围过大 right -1        }else if(((array[right] + array[left]) /2) < avg){            left ++     //若小于目标值 代表左边範围过大 left +1        }        else{ //若都符合push result            result.push([array[right],array[left]])            right-- //由于已经成功所以要缩小範围            left++  //由于已经成功所以要缩小範围        }    }return result}console.log(AveragePointer(array1, iunputavg)) //[ [ 4, 0 ], [ 3, 1 ] ]

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章