1
2
3
4
5
6
7
8
9
10
11
12
|
1 .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 ].
UPDATE ( 2016 / 2 / 13 ):
The return format had been changed to zero-based indices. Please read the above updated description carefully.
Subscribe to see which companies asked this questio
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
/** * Note: The returned array must be malloced, assume caller calls free().
*/
int * twoSum( int * nums, int numsSize, int target) {
int i,j;
int *a = ( int *) malloc ( sizeof ( int ) * 2);
for (i=0;i<numsSize;i++){
for (j=i+1;j<numsSize;j++){
if (nums[i]+nums[j]==target){
a[0]=i;
a[1]=j;
break ;
}
}
}
//printf("%d",a[1]);
return a;
} |
LeetCode第一题!!!!没想到两层循环就解决了,想想还有点激动。看了网上才知道这样
时间复杂度O(N*2)。
好像快点的话还可以hash表?
有机会再说吧[%>_<%]
本文转自 努力的C 51CTO博客,原文链接:http://blog.51cto.com/fulin0532/1864612