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++:
1、C++ vector的用法:http://www.cnblogs.com/Nonono-nw/p/3462183.html
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
vector<int> a;
for(int i=0; i<nums.size(); i++)
{
for(int j=i+1; j<nums.size(); j++)
{
if(nums[i]+nums[j]==target)
{
a.push_back(i);
a.push_back(j);
return a;
}
}
}
return a;
}
};
【2019/3/14】
上次写这道题,还是去年的六月份,现在已经快一年过去了,leetcode中文官网出来了……
从C换成C++,重上刷题路,心里五味杂陈
C:
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
int* twoSum(int* nums, int numsSize, int target) {
int *s;
s=(int*)malloc(2*sizeof(int));
int i,j;
for(i=0;i<numsSize-1;i++){ //注意上下限
for(j=i+1;j<numsSize;j++){ //注意上下限
if((*(nums+i)+*(nums+j))==target){
*s=i;*(s+1)=j;
return s;
}
}
}
return NULL;
}