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实现“两数之和”相关推荐

  1. swift golang java,解决两数之和 (Javascript, Java, C#, Swift, Kotlin, Python,C++, Golang)

    解决两数之和(Javascript, Java, C#, Swift, Kotlin, Python,C++, Golang) 给定一个整数数组,返回两个数字的索引,以便它们加起来成为一个特定的目标. ...

  2. Java实现两数之和

    文章目录 1.方法一:暴力法 2.方法二:两遍哈希表 3.方法三:一遍哈希表 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数. 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用 ...

  3. java 1099_【LeetCode(Java) - 1099】小于 K 的两数之和

    [LeetCode(Java) - 1099]小于 K 的两数之和 [LeetCode(Java) - 1099]小于 K 的两数之和 文章目录 1.题目描述 2.解题思路 3.解题代码 1.题目描述 ...

  4. Leetcode刷题第1题:两数之和(基于Java语言)

    ** Leetcode刷题第1题:两数之和(基于Java语言) ** 题目: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标 ...

  5. leetCode:twoSum 两数之和 【JAVA实现】

    LeetCode 两数之和 给定一个整数数组,返回两个数字的索引,使它们相加到特定目标. 您可以假设每个输入只有一个解决方案,并且您可能不会两次使用相同的元素. 更多文章查看个人博客 个人博客地址:t ...

  6. LeetCode题库整理【Java】—— 1两数之和

    LeetCode题库整理[Java] 1.两数之和 题目:给定一个整数数组和一个目标值,找出数组中和为目标值的两个数.你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用. 示例: 给定 nu ...

  7. java 两数之差_1_两数之和(java)

    两数之和 问题描述: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,数组中同一 ...

  8. 利用两数之和实现两个数交换(java版本)

    简单说明 import java.util.Scanner; public class HelloWorld {public static void main(String[] args) {int ...

  9. 两数之和(Python + Java)

    给定一个整数数组 nums 和一个整数目标值 target,在该数组中找出和为目标值 target 的那两个整数,并返回它们的数组下标. 可假设每种输入只会对应一个答案.但是,数组中同一个元素在答案里 ...

最新文章

  1. ??ArcGIS server公交线路动态分段问题
  2. 连接数process与会话session
  3. 【1】万魂杀MMORPG研发回顾
  4. 计算机学院可以表演的小品,中央戏剧学院小品表演真题之单人小品
  5. 小圈子.大社交:利用圈子引爆流行
  6. VTK:图片之ImageOrder
  7. linux的常用操作——基于ftp的windows10和腾讯云centos操作系统之间的文件上传和下载
  8. 怎么知道自己适不适合学计算机专业,不知道自己到底适不适合学习计算机专业...
  9. Hibernate学习(四)
  10. 图像基础 PSNR 峰值信噪比
  11. 华为光猫 HN8346X6 超级管理员密码获取方法,超简单
  12. 摄影基础知识——光学变焦和数码变焦
  13. 修改服务器线路,介绍几种常见的网络服务器线路
  14. Unity打包WebGL遇到的il2cpp.exe did not run properly问题
  15. Pipeline并行处理模型
  16. 微信小程序开发:腾讯地图集成详细步骤
  17. 人脸识别与美颜算法实战-图像特效
  18. 向右看齐 (排序问题)
  19. linux修改文件创建的时间格式,Linux下修改文件创建时间(修改文件更改时间)
  20. linux下netlink的使用

热门文章

  1. Mathematica中用有限元方法解不规则区域上的波动方程
  2. python中pip如何更新到最新版本
  3. 计算机类大学生竞赛经验分享
  4. 银河麒麟系统,光盘追加刻录失败
  5. Class类是什么?
  6. json单引号和双引号转义 完美解决由特殊字符引起的json解析错误(转载)
  7. AAA云免费云主机推荐码
  8. VMware -- 克隆虚拟机
  9. 实现扫描图片出现3d模型的虚拟仿真技术
  10. VC++的GDI+中,DrawImage方法的应用入门