水下功夫做透,水上才能顺风顺水。

找到数组中两个元素相加等于指定数的所有组合

1)先对数组进行快速排序
(2)左右指针查找
void findSumEqualTarget(int[] arr, int target,int len) {
    int first = 0;
    int last = len-1;
    int sum = 0;
    while(first < last ) {
        sum = arr[first] + arr[last];
        if (sum == target) {
            printf("%d,%d",arr[first],arr[last]);
            first++;
            last--;
        } else if (sum < target) {
            first++;
        } else {
            last--;
        }
    }
}

 

posted @ 2020-03-17 21:42  北方寒士  阅读(612)  评论(0编辑  收藏  举报