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]]);
}
}
}
