标题
两数之和
问题描述
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。
题目要求
要求输入参数为一个变量target和一个数组nums,输出格式中应包含结果【返回值是一个数组】
输入格式
nums = [2,7,11,15], target = 9
输出格式
[0,1]
解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1]
输入格式
nums = [3,2,4], target = 6
输出格式
[1,2]
输入格式
nums = [3,3], target = 6
输出格式
[0,1]
考察内容*
方法
数组
循环
使用java.util.Scanner
解题思路*
1.给出指定数组,和目标值
2.使用循环比较元素两两之和是否等于目标值
3.找出两元素之和等于目标值的下标
4.输出下标值
核心代码*
package test_1;
import java.util.Scanner;
public class TwoNumSum {
public static void main(String[] args) {
// 给定整数数组nums,和目标值
int[] nums = {2,7,11,15};
int target = 9;
System.out.println("nums = {2,7,11,15},target = 9");
s(nums,target);
// 也可以自己输入给定数组
Scanner sc = new Scanner(System.in);
System.out.println("请输入要创建数组元素个数:");
int n = sc.nextInt();
for (int i = 0; i < n; i++) {
System.out.println("请输入第" + (i+1) + "个元素:");
nums[i] = sc.nextInt();
}
System.out.println("请输入目标值:");
target = sc.nextInt();
s(nums,target);
}
// 输出结果
public static void s(int[] nums,int target){
for (int i = 0; i < nums.length; i++) {
for (int j = 0; j < nums.length; j++) {
if (i<j&&nums[i]+nums[j]==target){
System.out.println("["+i+","+j+"]");
break;
}
}
}
}
}