博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
两数之和-LeetCode
阅读量:7219 次
发布时间:2019-06-29

本文共 1104 字,大约阅读时间需要 3 分钟。

hot3.png

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。

示例:

给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]

 

我首先想到的也是暴力解决的办法,出现了两次问题,1.没有设置默认值,2.第二个for循环的length-1了

/** * @Author : Yanqiang * @Date : 2019/5/24 * @Param : [nums, target] * @return : int[] * @Description : 两数之和, ---暴力运算 */public static int[] twoSum1(int[] nums, int target) {    //定义默认返回值    int[] result = {0,0};    for (int i = 0; i
map = new HashMap<>(); for (int i = 0; i < nums.length; i++) { //目标值a = 两数之和 - 当前值 int a = target - nums[i]; //如果HashMap包含目标值 a=nums[i] ,说明找到了 if (map.containsKey(a)) { return new int[] { map.get(a), i }; } //如果没有重复的,HashMap存放的是Map
<当前值, 当前值的数组下标>
map.put(nums[i], i); } throw new IllegalArgumentException("No two sum solution");}
public static void main(String[] args) {    //int[] nums = {3,2,4};    int[] nums = {2, 7, 11, 15};    System.out.println(Arrays.toString(twoSum2(nums, 9)));    }

转载于:https://my.oschina.net/u/3526783/blog/3053735

你可能感兴趣的文章
字符串模式匹配KMP算法
查看>>
Android Drawable和Bitmap图片之间转换
查看>>
Debian 8 安装 Nvidia 显卡驱动
查看>>
nginx静态文件访问
查看>>
SharePoint 2013中的默认爬网文件扩展名和分析文件类型
查看>>
c#-冒泡排序-算法
查看>>
IP釋放、清除、以及刷新DNS
查看>>
第二次作业
查看>>
小知识
查看>>
安装Vmware时竟然也会报错,错误信息见图
查看>>
20179311《网络攻防实践》第三周作业
查看>>
Ural 1042 Central Heating
查看>>
css兼容问题大全
查看>>
2018-2019-1 20165324《信息安全系统设计基础》实验五
查看>>
使用 Applet 渲染 jzy3d WireSurface 波动率曲面图
查看>>
9 Web开发——springmvc自动配置原理
查看>>
截取图片
查看>>
Python学习--01入门
查看>>
MySQL联合查询语法内联、左联、右联、全联
查看>>
看牛顿法的改进与验证局部收敛
查看>>