java代码如下:
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class TwoNumberSum {
public static void main(String[] args) {
int[] arr={1,3,5,7,9,11};
System.out.println("请输入目标值(target):");
int target = new Scanner(System.in).nextInt();
int[] arr2=solution(arr,target);
while (arr2 == null){
System.out.println("数组中没有可以合成该target的两个数!请输入其他target:");
target = new Scanner(System.in).nextInt();
arr2=calculate(arr,target);
}
System.out.println("合成该target数组下标为:"+ Arrays.toString(arr2));
}
public static int[] calculate(int[] arr, int target){
int[] nums = null;
for (int i = 0; i <arr.length - 1 ; i++) {
for (int j = i+1; j <arr.length ; j++) {
if ((arr[i] + arr[j]) == target){
nums=new int[]{i,j};
}
}
}
return nums;
}
public static int[] solution(int[] arr, int target) {
Map<Integer, Integer> map = new HashMap<>();
int[] arr2 = null;
for (int i = 0; i < arr.length; i++) {
map.put(arr[i], i);
}
for (int i = 0; i < arr.length; i++) {
int tmp = target - arr[i];
if (map.containsKey(tmp) && map.get(tmp) != i){
arr2 = new int[] { i, map.get(tmp)};
}
}
return arr2;
}
}