给定一个整数数组 nums和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那两个整数,并返回它们的数组下标。
问:
/**
- 给定一个整数数组 nums和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那两个整数,并返回它们的数组下标。
- 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
- 你可以按任意顺序返回答案。
- 示例 1:
- 输入:nums = [2,7,11,15], target = 9
- 输出:[0,1]
- 解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
- 示例 2:
- 输入:nums = [3,2,4], target = 6
- 输出:[1,2]
- 示例 3:
- 输入:nums = [3,3], target = 6
- 输出:[0,1]
*/
答:
//方式一:使用两个for循环进行遍历
public static int[] twoSum(int[] nums,int target){int n = nums.length;for (int i = 0; i < n; ++i) {//大循环遍历的次数for (int j = i+1; j <n ; ++j) {//假设第一个是x,重新在数组中寻找target-x,依次类推第二个,第三个if(nums[i] + nums[j] == target){System.out.println("i的下标为======"+i+",======j的下标为"+j);return new int[]{i,j};}}}return new int[0];
}
//方式二 :使用哈希表
Tip:哈希表是怎么存储数据的呢?
哈希表同样是一个指针数组。
同样需要存储100个数据,需要的就不是100个单元了,因为哈希表要把某个数据存放在某个单元不是随机的一个过程,而是算出来的,这个算法叫哈希函数
比如要存储一个数据对
张三 1882356
李四 23456789
王五 58856456
张三经过哈希函数算出来的值是138,那么哈希表最少需要138个单元,因为张三对应的数据1882356要存储在指针数组的p[138]的位置上。
李四经过哈希函数算出来的值是500,那么2356789这个数据就要存放在p[500]这个位置上。
public static int[] twoSumT(int[] nums,int target){Map<Integer,Integer> map = new HashMap<>();for (int i = 0; i <nums.length; i++) {//大循环数组的length次数,依次遍历if(map.containsKey(target-nums[i])){//判断是否存在target-x的System.out.println(target-nums[i]+"=="+i);return new int[] {map.get(target-nums[i]),i};//获取存在target-x的对应下标,和目标下标}map.put(nums[i],i);//创建一个哈希表,对于每一个 x,我们首先查询哈希表中是否存在 target - x,然后将 x 插入到哈希表中,即可保证不会让 x 和自己匹配。System.out.println(map.toString());}return new int[]{};
}public static void main(String[] args) {int[] nums = {3,13,18,15};int target = 31;int[] ints = twoSumT(nums, target);System.out.println(Arrays.toString(ints));
}
给定一个整数数组 nums和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那两个整数,并返回它们的数组下标。相关推荐
- 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标
题目链接:https://leetcode-cn.com/problems/two-sum/solution/liang-shu-zhi-he-by-leetcode-2/ 给定一个整数数组 nums ...
- 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,数组中同一个元素不能使用两遍. ...
- JS实现 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
题目:(JS实现) 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 四种方法如下: 方法一:暴力破解法,和值匹配 //暴力 ...
- java,给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
标题:java,给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 一.示例 二.题解 方法一,暴力法:使用双重for循环,每 ...
- 给定一个整数数组 nums 和一个整数目标值 target, 请你在该数组中找出和为目标值 target 的那两个整数, 并返回它们的数组下标
题目要求: 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出和为目标值 target 的那两个整数,并返回它们的数组下标. [注]从前往后进行匹配, 一旦匹配成功, 便结 ...
- 两数之和, 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那两个整数,并返回它们的数组下标。
两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那两个整数,并返回它们的数组下标. 可以假设每种输入只会对应一个答案.但是,数组 ...
- (python)给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的两个整数。
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的 两个 整数. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个数组中同样的元素. 示例: 给定 nu ...
- 第1题 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标
package com.leetcode; import java.util.ArrayList; import java.util.HashMap; import java.util.List; i ...
- C++ leetCode 1. 两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个
一.思路: 讲数据用map存储,加快查询速度 vector<int> twoSum(vector<int>& nums, int target) {map<int ...
最新文章
- 在 Docker 中运行 MySQL:多主机网络下 Docker Swarm 模式的容器管理
- 在普通PC上安装XENSERVER 6.2
- 接近岁末,今日股市收盘大跳水
- LightOJ 1078 Integer Divisibility (同余定理)
- 还在跟面试官纠缠redis分布式锁的问题?此图让你吊打面试官
- 6个常用的Java开发技巧,快收藏吧!
- 被除数、除数、商、余数的正负号规律二
- 中累计直方图_新特性解读 | MySQL 8.0 直方图
- 电脑连接电视方法详解_笔记本连接电视有哪些设置方法
- Linux有关知识补充
- JM8.6的解码端去方块滤波代码详述
- HTTP请求协议格式详解
- 创业怎么赚信息差的钱?信息差的项目有哪些?
- 网站信息的采集系列(一)--基本流程
- 平衡小车PID,就该这么调!!!
- Django - 设计模式及模板层
- 计算机电影制作专业,影视制作专业是学什么的
- word文档的只有横线的表格怎样做
- 程序员该如何有效的找工作?
- 视频教程-用project做项目计划及总结报表-研发管理
热门文章
- iOS 应用Archiving问题
- 什么叫冷备用状态_什么是热备用状态?
- Python 练习实例100-39,有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
- java gef_GEF简介
- JavaWeb技术内幕二:Java IO工作机制
- Photoshop技巧:[2]如何抠头发?
- Ant Design Pro -- 02项目结构@20210331
- shader拖尾_u3d拖尾特效组件-------TrailRenderer
- linux系统下载18.04,在Ubuntu 18.04系统中下载安装Persepolis Download Manager
- 用matlab判断两个球是否相交,判断两个矩阵相交