写一个函数,func(arr, k),要求计算arr中两两元素的差的绝对值是k的组合

思路

1、求一个数组中两两元素的差,需要用到循环
2、我们需要一个空数组,来保存获取到的组合var array = []
3、循环的思路为,先遍历一遍数组,在每次循环中再遍历一遍数组
4、求每次遍历的差,通过Math.abs()方法,求差的绝对值

代码

function getk(arr, k) {
    var array = []
    for(var i=0; i< arr.length-1; i++) {
        for(var j=i+1;j

需要注意的是:
1、以上是最少的循环方案,i,是因为i没有必要到最后一位,因为j到了最后一位了,两两相减的绝对值8-99-8是一样的;
2、j=i+1是因为i的第一次循环已经是从0开始了,内部循环从0开始没有意义了,因为arr[0]-arr[0]的值为0,所以这个比较没有意义。同理当i=1的时候,j要从2开始(其实道理同1、差不多)


END,感谢阅读!欢迎评论区留言讨论~

你可能感兴趣的:(写一个函数,func(arr, k),要求计算arr中两两元素的差的绝对值是k的组合)