C语言解法:预计跑出来超时
返回数组 2.指针概念
#include
using namespace std;
int *Sum(int *a,int N){
int *k=new int[2];
if(!k)
return NULL;
for(int i=0;i<=3;i++)
for(int j=i+1;j<=3;j++)
if(a[j]==N-a[i]){
k[0]=a[i];
k[1]=a[j];
break;
}
return k;
}
int main()
{
int nums[]={2,7,11,15};
int target;
int *k;
cin>>target;
k=Sum(nums,target);
for(int i=0;i<=1;i++){
cout<
}
delete k;
return 0;
}
C++解法(vector)
class Solution {
public:
vector twoSum(vector& nums, int target) {
unordered_map m;
vector res;
for (int i = 0; i < nums.size(); ++i) {
m[nums[i]] = i;
}
for (int i = 0; i < nums.size(); ++i) {
int t = target - nums[i];
if (m.count(t) && m[t] != i) {
res.push_back(i);
res.push_back(m[t]);
break;
}
}
return res;
}
};