1. 两数之和
给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。
你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。
示例:
给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]
#include<bits/stdc++.h>
using namespace std;
/********************提交代码********************/
int* twoSum(int* nums, int numsSize, int target)
{
int i,j;
int *ans=(int*)malloc(2*sizeof(int));
bool flag=false;
for(i=0; i<numsSize; ++i)
{
if(flag)
break;
for(j=0; j<numsSize; ++j)
{
if(i==j)
continue;
if(nums[i]+nums[j]==target)
{
ans[0]=i;
ans[1]=j;
flag=true;
break;
}
}
}
if(ans[0]>ans[1])
{
int temp=ans[0];
ans[0]=ans[1];
ans[1]=temp;
}
return ans;
}
/***************************************************/
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
//nums = [2, 7, 11, 15], target = 9
int nums[4]= {2,7,11,15};
int *ans;
ans=twoSum(nums,4,9);
cout<<*(ans+0)<<" "<<*(ans+1)<<endl;
return 0;
}
罒ω罒决定重拾代码,从简单题开始刷吧。
函数里面sort和swap这样的函数都不能用,不申请内存就会RE。
深深觉得自己以前C/C++混写的代码风格太说不过去了,指针函数也手生,引以为戒吧。