【Two Sum】 --MyLeetCode(一)

来源:互联网 发布:mac如何拷贝文件到u盘 编辑:程序博客网 时间:2024/05/29 09:29

Description:

Given an array of integers, return indices of the two numbers such that they add up to a specific target.

You may assume that each input would have exactly one solution, and you may not use the same element twice.


Example:

Given nums = [2, 7, 11, 15], target = 9,Because nums[0] + nums[1] = 2 + 7 = 9,return [0, 1].

思路:

类似冒泡排序,遍历数组,查找两个数字并返回下标:

自己实现的渣渣C++版:(129ms QAQ)

class Solution {public:    vector<int> twoSum(vector<int>& nums, int target) {        vector<int> res(2,0) ;        for(int i = 0;i < nums.size();++i){            for(int j = i + 1;j < nums.size();++j){                if(nums[j] == target - nums[i] ){                    res[0] = i;                    res[1] = j;                }            }        }        return res;    }};

C语言版(106ms):
/** * Note: The returned array must be malloced, assume caller calls free(). */int* twoSum(int* nums, int numsSize, int target) {    for(int i = 0;i < numsSize;++i){        for( int j = i + 1;j < numsSize;++j){            if( nums[i] + nums[j] == target){                int* res = (int*)malloc(sizeof(int)*2);                    *res = i;                *(res + 1) = j;                return res;            }        }    }    return 0;}


原创粉丝点击