java实现“两数之和”
java代码如下:
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;/*** 问题:两数之和。给定一个数组,和一个目标值target,请在数组中找到两个数之和为target的数,返回数组下标*/
public class TwoNumberSum {public static void main(String[] args) {//给定数组数据int[] arr={1,3,5,7,9,11};//输入targetSystem.out.println("请输入目标值(target):");//获取输入targetint target = new Scanner(System.in).nextInt();//调用方法计算,返回结果数组//int[] arr2=calculate(arr,target);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));}//暴力破解(方法1))public static int[] calculate(int[] arr, int target){int[] nums = null; //返回的数组可能不存在,所以是nullfor (int i = 0; i <arr.length - 1 ; i++) { //遍历,找到这两个数的下标for (int j = i+1; j <arr.length ; j++) {if ((arr[i] + arr[j]) == target){ //判断这两个数是否能合成该targetnums=new int[]{i,j};//下标添加进数组}}}return nums;//返回数组}//哈希表(方法2)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++) { //遍历,把数组arr里面的数放到集合map里面map.put(arr[i], i);}for (int i = 0; i < arr.length; i++) {//遍历map,找到这两个数int tmp = target - arr[i];if (map.containsKey(tmp) && map.get(tmp) != i){//判断这两个数是否能合成该targetarr2 = new int[] { i, map.get(tmp)};//下标添加进数组}}return arr2;//返回数组}
}
java实现“两数之和”相关推荐
- swift golang java,解决两数之和 (Javascript, Java, C#, Swift, Kotlin, Python,C++, Golang)
解决两数之和(Javascript, Java, C#, Swift, Kotlin, Python,C++, Golang) 给定一个整数数组,返回两个数字的索引,以便它们加起来成为一个特定的目标. ...
- Java实现两数之和
文章目录 1.方法一:暴力法 2.方法二:两遍哈希表 3.方法三:一遍哈希表 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数. 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用 ...
- java 1099_【LeetCode(Java) - 1099】小于 K 的两数之和
[LeetCode(Java) - 1099]小于 K 的两数之和 [LeetCode(Java) - 1099]小于 K 的两数之和 文章目录 1.题目描述 2.解题思路 3.解题代码 1.题目描述 ...
- Leetcode刷题第1题:两数之和(基于Java语言)
** Leetcode刷题第1题:两数之和(基于Java语言) ** 题目: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标 ...
- leetCode:twoSum 两数之和 【JAVA实现】
LeetCode 两数之和 给定一个整数数组,返回两个数字的索引,使它们相加到特定目标. 您可以假设每个输入只有一个解决方案,并且您可能不会两次使用相同的元素. 更多文章查看个人博客 个人博客地址:t ...
- LeetCode题库整理【Java】—— 1两数之和
LeetCode题库整理[Java] 1.两数之和 题目:给定一个整数数组和一个目标值,找出数组中和为目标值的两个数.你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用. 示例: 给定 nu ...
- java 两数之差_1_两数之和(java)
两数之和 问题描述: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,数组中同一 ...
- 利用两数之和实现两个数交换(java版本)
简单说明 import java.util.Scanner; public class HelloWorld {public static void main(String[] args) {int ...
- 两数之和(Python + Java)
给定一个整数数组 nums 和一个整数目标值 target,在该数组中找出和为目标值 target 的那两个整数,并返回它们的数组下标. 可假设每种输入只会对应一个答案.但是,数组中同一个元素在答案里 ...
最新文章
- ??ArcGIS server公交线路动态分段问题
- 连接数process与会话session
- 【1】万魂杀MMORPG研发回顾
- 计算机学院可以表演的小品,中央戏剧学院小品表演真题之单人小品
- 小圈子.大社交:利用圈子引爆流行
- VTK:图片之ImageOrder
- linux的常用操作——基于ftp的windows10和腾讯云centos操作系统之间的文件上传和下载
- 怎么知道自己适不适合学计算机专业,不知道自己到底适不适合学习计算机专业...
- Hibernate学习(四)
- 图像基础 PSNR 峰值信噪比
- 华为光猫 HN8346X6 超级管理员密码获取方法,超简单
- 摄影基础知识——光学变焦和数码变焦
- 修改服务器线路,介绍几种常见的网络服务器线路
- Unity打包WebGL遇到的il2cpp.exe did not run properly问题
- Pipeline并行处理模型
- 微信小程序开发:腾讯地图集成详细步骤
- 人脸识别与美颜算法实战-图像特效
- 向右看齐 (排序问题)
- linux修改文件创建的时间格式,Linux下修改文件创建时间(修改文件更改时间)
- linux下netlink的使用