2019-03-15-算法-进化(两数之和)
题目描述
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。
示例:
给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
解题:
/*** 思路1:暴力法,对每个元素,都去查找是否有与其和为target的元素* @param nums* @param target* @return*/public int[] twoSum1(int[] nums, int target) {for(int i=0;i<nums.length;i++) {for(int j=i+1;j<nums.length;j++) {if(nums[i] +nums[j] == target) {return new int[]{i,j};}}}return null;}
/*** 思路2:对思路1进行优化,利用HashMap的O(1)查找性,用空间换时间* @param nums* @param target* @return*/public int[] twoSum2(int[] nums, int target) {Map<Integer, Integer> map = new HashMap<Integer, Integer>(nums.length);for(int i=0;i<nums.length;i++) {map.put(nums[i], i);}for(int i=0;i<nums.length;i++) {if(map.containsKey(target-nums[i]) && map.get(target-nums[i]) !=i) {return new int[]{i,map.get(target-nums[i])};}}return null;}
/*** 思路3:对思路2进行优化,一遍迭代完成* @param nums* @param target* @return*/public int[] twoSum(int[] nums, int target) {Map<Integer, Integer> map = new HashMap<Integer, Integer>(nums.length);for(int i=0;i<nums.length;i++) {if(map.containsKey(target-nums[i])) {return new int[]{i,map.get(target-nums[i])};}else {map.put(nums[i], i);}}return null;}
2019-03-15-算法-进化(两数之和)相关推荐
- Android面试中常问的几种简单算法(两数之和、开灯、上楼梯、柠檬水、找最多的数)
大家好,最近在面试,大小公司可能都会问一两个算法,来测试面试者的算法能力.本篇博客从笔者被问到的几个简单算法来给大家分享一下,(面试官会根据面试者的能力,提问不同难度,这篇的分享是比较简单的,大神可忽 ...
- 【每日一算法】两数之和 IV - 输入 BST
微信改版,加星标不迷路! 每日一算法-两数之和IV-输入BST 作者:阿广 阅读目录 1 题目 2 解析 1 题目 给定一个二叉搜索树和一个目标结果,如果 BST 中存在两个元素且它们的和等于给定的目 ...
- 算法笔记-两数之和、三数之和、四数之和(LeetCode)
两数之和 1.两数之和 题目:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,数 ...
- 力扣算法001_两数之和
1. 两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,数组中同一个元素 ...
- Java算法题:两数之和
LeetCode原题: 给你一个下标从 1 开始的整数数组 numbers ,该数组已按 非递减顺序排列 ,请你从数组中找出满足相加之和等于目标数 target 的两个数. 示例 1: 输入:num ...
- Java算法(两数之和)
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标. 你可以假设每种输入只会对应一个答案.但是,数组中同 ...
- php算法两数之和 复杂度,每天一道leetcode算法题:两数之和-php版
我们先来看题目: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用 ...
- 算法:两数之和(two-sum)。
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,数组中同一个元素不能使用两遍. ...
- leetcode算法题--两数之和
题目地址:https://leetcode-cn.com/problems/two-sum/ vector<int> twoSum(vector<int>& nums, ...
- 【leetcode】 算法题1 两数之和
[leetcode] 算法题1 两数之和 问题 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数. 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用. 示例: 给定 nums ...
最新文章
- GridView利用FootTemplate插入新记录
- java 静态方法覆盖_Java中方法的覆盖和静态方法的隐藏
- Ajax的get、post和ajax提交
- 简单的python画图代码_python opencv如何实现简易画图板 python opencv实现简易画图板代码...
- updatepanel失效怎么办_【点滴积累】解决jQuery绑定事件在updatepanel更新后失效的方法...
- 硬派SUV坦克500撞色款预计年底上市
- MySQL用函数统计记录总数_在mysql中使用COUNT 或者SUM函数计算记录总数
- 微信号也有加人涨粉规则和限制?
- 无法在VMware Player中安装64位系统
- iOS开发之超级签名-原理/机制/技术细节-完全解析(暂时还没有验证)
- Python采集深圳美莱(仅思路)
- Chrome升级 76.0.3809.87后 GreenChrome无法使用的办法
- 新浪微博Emoji表情解析
- 数据杂谈:大数据之ETL(数据抽取,转换何加载)
- Bugku misc 旋转跳跃wp
- matlab 地址中有变量,在matlab中符号变量
- 【职业规划】该如何选择职业方向?性能?自动化?测开?学习选择python、java?
- windows Internet Connection Sharing(ICS)服务的启动
- 仪表图形怎么用c语言写,科一仪表盘图标大全
- 李若彤揭秘退隐10年原因:感情不顺 父亲离世 曾患抑郁症
热门文章
- windows下配置mysql主从复制_Windows下MySQL主从复制的配置方法
- print的describe的展示全部数据_大数据项目中的QA需要迎接新的挑战
- nx二次开发c语言,NX二次开发-UFUN API函数编程基础
- 16岁上大学,25岁博士毕业,她还是南大医学院最年轻的博导!
- 假如人类长出翅膀,会变成这种怪样子
- 目瞪口呆!137亿年的宇宙演化,竟然如此震撼!简直颠覆想象....
- 女生心中的理想男生!这些条件你符合几条?
- 用一个小球揭开地球的面纱,探索地球运转的秘密!
- 推荐系统相关算法(1):SVD
- oracle clob 查询换行,sqoop clob从Oracle导入到hive 回车换行导致记录增多