题目:
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.
Example:
Given nums = [2, 7, 11, 15], target = 9,
Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].
翻译:
给定一个整形数组和一个整数target,返回2个元素的下标,它们满足相加的和为target。
你可以假定每个输入,都会恰好有一个满足条件的返回结果。
用python实现
def TwoSum(Source, Target):
l = len(Source)
j = 0
Num = []
for Head in Source:
for index in range(j,l):
if(Head + Source[index] == Target):
Num.append(j)
Num.append(index)
return Num
index = index+1
j = j+1
return Num
Source = [1, 2, 5, 7, 9]
Target = 10
Num = TwoSum(Source, Target)
print(Num)
C语言实现
#include <stdio.h>
int *TwoSum(int Source[], int num, int Target)
{
int Index1=0, Index2=0;
int length = num;
int TmpLen = length;
static int Pos[2];
for(Index1; Index1<length; Index1++)
{
Index2 = Index1;
for(Index2; Index2<length; Index2++)
{
if(Source[Index1] + Source[Index2] == Target)
{
Pos[0] = Index1;
Pos[1] = Index2;
return Pos;
}
}
}
return Pos;
}
int main(void)
{
printf("Begin The Program!***************************\n");
int Source[5]={1,5,6,7,9};
int Target = 6;
int i=0;
int *NoOfSource;
NoOfSource = TwoSum(Source, 5, Target);
printf("NoOfSource[0]=%d, NoOfSource[1]=%d\n", *NoOfSource, *(NoOfSource+1));
printf("Finish The Program!***************************\n");
return 0;
}