LeetCode算法练习题第一题
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。
个人思路 :遍历数组获取到值进行计算,得到计算结果与目标值一致的保存索引在集合内,最后输出集合 和 指定索引的数值。
import java.util.ArrayList; import java.util.Arrays; public class soluction { public static ArrayList<int[]> index_list = new ArrayList<int[]>(); public void twoSum(int[] nums, int target) { int num_1 = 0; int num_2 = 0; int target_tem = 0; for(int i = 0;i<nums.length;i++){ for(int j = 0; j<i ; j++){ if(i == j){ continue; } num_1 = nums[i]; num_2 = nums[j]; target_tem= num_1 + num_2 ; if(target_tem == target ){ //return_num[0] = i; //return_num[1] = j; int [] list = { i,j}; index_list.add(list); } } } } public static void main(String[] args) { soluction s = new soluction(); int [] nums = { 1,2,3,4,5,6}; int target_number = 7; s.twoSum(nums, target_number); System.out.println("输入数组为:"); System.out.println(Arrays.toString(nums)); for(int[] obj : index_list) { System.out.println(); System.out.print("下标索引是:"); System.out.print(""+Arrays.toString(obj)+" "); System.out.print("这两个数值是"); System.out.print(nums[obj[0]]+"、"); System.out.print(nums[obj[1]]); } } }