LeetCode-01两数之和

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        unordered_map<int, int> m;
        for (int i = 0; i < nums.size(); ++i) {
            if (m.count(target - nums[i])) {
                return {i, m[target - nums[i]]};
            }
            m[nums[i]] = i;
        }
        return {};
    }
};
/**
 * Note: The returned array must be malloced, assume caller calls free().
 */
int* twoSum(int* nums, int numsSize, int target) {
    int i,j,count=0;
    int *a = (int*)malloc(2*sizeof(int));
    for (i=0;i<numsSize;i++)
    {
        for (j=i+1;j<numsSize;j++)
        {
            if(nums[i]+nums[j]==target)
            {
                a[0] = i;
                a[1] = j;
                count = 1;            
            }
            if(count==1)
                break;
        }
    }
    return a;
}

C++ 执行时间8ms;C执行时间108ms。

猜你喜欢

转载自blog.csdn.net/tingfenghanlei/article/details/83782767