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].
#include "stdafx.h"
#include<stdio.h>
#include<stdlib.h>
int main() {
int* twoSum(int* nums, int numsSize, int target);
int sum[10];
sum[0] = 2;
sum[1] = 7;
sum[2] = 11;
sum[3] = 15;
int *x = twoSum(sum, 4, 17);
printf("%d %d\n",x[0],x[1]);
return 0;
}
//动态申请内存,函数调用完以后,并不会释放内存,或者程序员释放或者等操作系统回收资源
int* twoSum(int* nums, int numsSize, int target) {
int i = 0, j; int flag = 0;
int* p = (int *)malloc(3* sizeof(int));
for(;i<numsSize-1;i++){
for(j=i+1;j<numsSize;j++)
if (nums[i] + nums[j] == target) {
p[0] = i;
p[1] = j;
break;
flag = 1;
}
if (flag)break;
}
return p;
}