给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值的两个整数。
你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。
示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]
暴力解法:采用C语言编程,采用两个循环,判断数组中两个数是否等于目标值。具体如下:
/** Note: The returned array must be malloced, assume caller calls free().*/
int* twoSum(int* nums, int numsSize, int target) {
int i,j;
int *a;
a = (int*)malloc(sizeof(int) * 2);
for (i = 0;i < numsSize; ++i){
int flag = 0;
for (j = i + 1; j < numsSize; ++j){
if (nums[i] + nums[j] == target){
a[0] = i;
a[1] = j;
flag = 1;
break;
}
}
if (flag == 1)
break;
}
return a;
}
遇到问题,关于malloc的使用。
网友评论