1. 程式人生 > >leetcode題庫:1.兩數之和

leetcode題庫:1.兩數之和

給定一個整數陣列和一個目標值,找出陣列中和為目標值的兩個數。
你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。

示例:

給定 nums = [2, 7, 11, 15], target = 9
因為 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
我的答案:
/**
 * Note: The returned array must be malloced, assume caller calls free().
 */
int* twoSum(int* nums, int numsSize, int target) {
    int i,j,sum=-1,io,jo,flag=0;
    for(i=0;i<numsSize;i++)
    {
        for(j=0;j<numsSize;j++){
            if(i!=j){
                sum = nums[i]+nums[j];
                if(sum == target){
                    io = i;
                    jo = j;
                    flag = 1;
                    break;
                }
            }
        }
        if(flag)break;
    }
    int *out = malloc(sizeof(int)*2);
    out[0] = io<jo?io:jo;
    out[1] = io>jo?io:jo;
    return out;
}
程式碼執行結果:
我的輸入
[2,7,11,15]
9
我的答案
[0,1]
預期答案
[0,1]