两数之和——梦开始的地方
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
你可以按任意顺序返回答案。
示例 1:
输入:nums = [2,7,11,15], target = 9
输出:[0,1]
解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
1、暴力枚举:
class Solution {public int[] twoSum(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 new int[0];}
}
这是最容易想到的方法,两层循环,逐一进行枚举,直到两数之和等于target为止,时间复杂度为O(N^2)。
2、哈希表:
class Solution {public int[] twoSum(int[] nums, int target) {Map<Integer, Integer> hashmap = new HashMap<Integer, Integer>();for(int i = 0;i<nums.length;i++){if(hashmap.containsKey(target-nums[i])){return new int[]{hashmap.get(target-nums[i]),i};}else{hashmap.put(nums[i],i);}}return new int[]{};}}
方法一的时间复杂度较高的原因是寻找 target - x 的时间复杂度过高。方法二借助于哈希表能够快速寻找数组中是否存在目标元素。对于每一个 nums[i],我们首先查询哈希表中是否存在一个数等于target - nums[i],如果没有便将nums[i] 以及他的下标 i 插入到哈希表中,如果满足后便将那个数的下标 i 取出,时间复杂度为O(N)。
知识补充:
1、HashMap是基于哈希表实现的,每一个元素是一个key-value对;
2、Contains()用于判断一个字符串中是否包含另外一个字符串;
3、ContainsKey()主要用于判断map中是否包含指定的键名;
两数之和——梦开始的地方相关推荐
- 两数之和---------梦开始的地方
前言 本题为力扣官网第一题. 题目:力扣 一.问题分析 直接暴力求解,两层for循环,第一层for循环遍历数组中每一个元素,第二层循环遍历从第一次循环元素之后遍历数组元素,寻找满足条件的两数之和为ta ...
- 力扣-两数之和 (梦开始的地方)
力扣-两数之和(梦开始的地方) 来源:力扣网 https://leetcode.cn/problems/two-sum/ 题目 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组 ...
- 【前端来刷LeetCode】两数之和与两数相加
大部分玩前端的小伙伴,在算法上都相对要薄弱些,毕竟调样式.调兼容就够掉头发的了,哪还有多余的头发再去折腾. 确实在前端中需要使用到算法的地方是比较少,但若要往高级方向发展,算法的基本功就非常重要啦.对 ...
- 两数之和,两数相加(leetcode)
我们都知道算法是程序员成长重要的一环,怎么才能提高算法呢, 出来在网上看视频之外,动手练习是非常重要的.leetcode 就是一个非常好的锻炼平台. 1. 两数之和,在 leetcode 里面是属于 ...
- LeetCode题库整理【Java】—— 1两数之和
LeetCode题库整理[Java] 1.两数之和 题目:给定一个整数数组和一个目标值,找出数组中和为目标值的两个数.你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用. 示例: 给定 nu ...
- 【leedcode刷题1】两数之和
[leedcode刷题 1]两数之和 大家好,小生不才,从今天开始将自己刷题的过程记录在博客中,因为能力有限,所以如果有什么错的地方希望大家积极指正,不胜感激. 题目 给定一个整数数组 nums 和一 ...
- 领扣LintCode算法问题答案:56. 两数之和
56. 两数之和 描述 给一个整数数组,找到两个数使得他们的和等于一个给定的数 target. 你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标.注意这里下标的范围是 ...
- linux-shell脚本-利用shell函数计算两数之和--思考return原理
一.实例1(错误代码) 在shell脚本的学习过程中,遇到定义一个带有return语句的函数,来计算两数之和,代码如下: #!/bin/bash funWithReturn(){echo " ...
- 青铜三人行之两数之和
先说一个消息,为了方便互相交流学习,青铜三人行建了个微信群,感兴趣的伙伴可以扫码加下面的小助手抱你入群哦! 哈喽,大家好,欢迎来到青铜三人行的每周一题现场.在接下来的时间里,我们三人(Helen.书香 ...
最新文章
- 华为秘密作战计划曝光,重注研发AI芯片挑战英伟达,轮值董事长挂帅
- 关于request取中文字符串变?的解决办法
- NLP之TEA:自然语言处理之文本情感分析的简介、算法、应用、实现流程方法、案例应用之详细攻略
- mysql5.5 replication_mysql5.5 master-slave(Replication)配置
- 贝叶斯网络的应用实例一
- Java 持有对象简要笔记
- Git 操作实战示例
- Spark 计算人员二度关系
- html5ie11缩放,IE 11 页面缩放后再次打开不能保存之前的缩放比例
- C++学习系列(二)—— 核心编程(面向对象)
- SCI论文写作中常用的连接词和短语
- 安卓app里播放youtube视频
- 使用selenium模仿手机浏览器访问淘宝网页
- Thrift IDL示例文件
- qq邮箱mx服务器,QQ域名邮箱管理系统MX记录是什么?怎么添加设置?
- mysql-query()expects_mysql_query() expects parameter 2 to be resource, string given in [duplicate]
- excel服务器项目管理软件,用excel做项目管理系统
- 高精密应变片0.01g信号采集方案分享
- sql server 计算2个日期相差的 天数,月数,年数,日期运算/计算
- 使用vue视频播放器上增加云台控制面板