快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的值

先给数组排序
然后设置两个指针 i,j,一个从头开始,一个从最后开始
如果a[i] + a[j] < sum , 就将i 往后移动一个,
如果a[i] + a[j] > sum , 就将j 往前移动一个,

func getSumNum(arr []int , Sum int) (int, int) {
    for(i := 0, j := n-1; i < j ; )
    {
        if(arr[i] + arr[j] == Sum)
            return i,  j
        else if(arr[i] + arr[j] < Sum)
            i++;
        else
            j--;
    }
    return -1 , -1
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容