import java.util.*;/*输入util包内全部类*/ /* * 目标:给定一个整数数组和一个目标值, * 找出数组中和为目标值的两个数, * 一样的元素不能被重复利用。 * 输出数组中符合要求的两个数的角标*/ class HelloWorld { public static void main(String[] args){ HelloWorld hello = new HelloWorld();/*建立hello对象*/ Scanner in = new Scanner(System.in);/*建立Scanner对象*/ System.out.print("输入目标值:"); int a = in.nextInt();/*输入目标值*/ System.out.print("输入数组长度:"); int c = in.nextInt();/*输入数组长度*/ System.out.print("输入数组元素:"); int[] nums = new int[c];/*定义一个数组长度为c的整型数组nums*/ for(int i=0;i<nums.length;i++){ nums[i] = in.nextInt();//将键盘输入值赋予数组元素,以空格隔开 } hello.twoSum(nums,a);/*调用twoSum方法*/ } public int[] twoSum(int[] nums, int target){/*定义了一个返回值为int[],方法名为twoSum的方法,传递给twoSum的参数有int类型的数组nums和int类型的target*/ for (int i = 0; i < nums.length; i++) {/*双层for循环对数组进行比较和求和*/ for (int j = i+1; j < nums.length; j++) { if(nums[i] == nums[j]){/*数组元素比较*/ continue;/*跳出这次循环*/ }else{ int twoSum = nums[i]+nums[j];/*数组元素求和*/ if(twoSum == target){/*将所求和与目标值进行比较*/ int[] a = new int[]{i,j}; System.out.println("返回值为:"+Arrays.toString(a));/*使用toString( )方法将数组转换成字符串*/ } } } } return nums; } }
输出结果示例:java