一、题目描述
二、题目分析
1,常规解法
这道题目的意思是给定一个数组和一个值,要求出这个数组中两个值的和等于这个给定值target。
输出是有要求的:
- 坐标较小的放在前面,较大的放在后面。
- 这俩坐标不能为零。
因此我们可以用两个for循环遍历整个数组,找到这个数组中两个值的和等于这个给定值的数组下标并输出。
三、Go代码
//1_常规解法 func twoSum(nums []int, target int) []int { var result = [2]int {0,0} if len(nums) < 2 { return nil } for i := 0 ; i < len(nums) - 1; i++ { for j := i + 1; j < len(nums); j++ { if(nums[i] + nums[j] == target){ result[0] = i result[1] = j return result[:] //返回结果 } } } return nil }
四、C代码
int* twoSum(int* nums, int numsSize, int target) { int *a = (int*)malloc(2 * sizeof(int)); for(int i = 0;i < numsSize;i++){ for(int j = i + 1;j < numsSize;j++){ if(nums[j] == target - nums[i]){ a[0] = i; a[1] = j; } } } return a; }
五、小结
本题主要考察循环语句的掌握和对数组的理解。