-
给定一个整数数组numbers,从数组中找出两个满足相加之和等于目标数target。
-
假设每个数组只对应唯一的答案,而且不可以重复使用相同元素。
-
返回两数的下标值,以数组形式返回。下标值不可相等
-
直接两层循环遍历,然后让每个数值进行相加,直到等于target的时候跳出循环
-
c代码如下:
-
#include <stdio.h> int main(int argc, char const *argv[]) { int arr[6] = {1,2,3,4,5,6}; int tag = 10; int i,j; int count = 0; for(i = 0;i < 6;i++) { for(j = 1;j < 6;j ++){ if(arr[i] + arr[j] == tag && i != j) { count = 1; printf("%d,%d\n", i,j); break; } } if(count == 1) { break; } } return 0; }
-
java代码如下:
public static int[] solution1(int[] nums,int target){ Map<Integer,Integer> map = new HashMap<Integer,Integer>(); for(int i = 0;i < nums.length;i++){ if(map.containsKey(target - nums[i])){ return new int[]{map.get(target - nums[i]),i}; } map.put(nums[i],i); } return new int[0]; }