TwoSum

TwoSum

两数之和,leetcode第一题,这里先写两种思路,哈希的之后补上。

未排序(n^2)

void TwoSum(int* arr,int target,int len){
    for(int i = 0;i < len;i++){
        for(int j = i+1;j < len;j++){
            if(arr[i]+arr[j] == target){
                cout<<arr[i]<<","<<arr[j]<<endl;
            }
        }
    }
}

已排序(n)

void TwoSumSorted(int* arr,int target,int len){
    int left = 0,right =len-1;
    while(left < right){
        int sum = arr[left] + arr[right];
        if(sum >target){
            right--;
        }
        else if(sum < target){
            left++;
        }
        else{
            cout<<arr[left]<<","<<arr[right]<<endl;
            left++;		//别忘了更新
            right--;
        }
    }
}

哈希表

posted @ 2020-03-04 00:07  MenciusYue  阅读(105)  评论(0)    收藏  举报