算法-查找数组两个数据相加等于目标值
给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target的那两个整数,并返回他们的数组下标。
示例1:
输入:nums=[2,7,11,15] target =9
输出:[0,1]
方法一:
思路:我们可以通过反复遍历,先让外层循环代表第一个数,随后内层循环代表第二个数,第一个数不变,找是否有第二个数与第一个数相加等于target,如果没有,那么外层循环继续,从而内层循环也继续,直到找到相加为target值得那两个数,注意内层循环=外层循环加1,因为不能是本身的一个数,相加等于target
<script>// *********************第一种***************************let nums = [3, 3];function getSum(nums, target) {for (let i = 0; i < nums.length; i++) {for (let j = i + 1; j < nums.length; j++) {if (nums[i] + nums[j] == target) return [i, j];}}}let num = getSum(nums, 6);console.log(num);// *********************第二种***************************// 思路:let nums = [3, 3];let target = 6;function getSum(nums, target) {map = new Map();for (let i = 0; i < nums.length; i++) {x = target - nums[i];if (map.has(x)) return [map.get(x), i];}map.set(nums[i], i);}</script>
方法二:
思路:可以通过target值,用逆向解法,用target减去某个元素值,然后来判断map中是否有相同的值
注: 用js中的map对象map(数组元素值,坐标)
map.has(key)->map中是否存在key返回boolean
map.get(key)->返回map中的value值
// *********************第二种***************************let nums = [3, 3];let target = 6;function getSum(nums, target) {map = new Map();for (let i = 0; i < nums.length; i++) {x = target - nums[i];if (map.has(x)) return [map.get(x), i];}map.set(nums[i], i);}
算法-查找数组两个数据相加等于目标值相关推荐
- 数组两个整数相加 c语言,作业帮:给定一个整数数组,找出其中两个数相加等于目标值(去重set)...
题目描述 给定一个整数数组,找出其中两个数相加等于目标值 输入 [1,3,5,7,9,11] 10 输出 1,9 3,7 代码: import java.util.HashMap; import ja ...
- 作业帮:给定一个整数数组,找出其中两个数相加等于目标值(去重set)
题目描述 给定一个整数数组,找出其中两个数相加等于目标值输入 [1,3,5,7,9,11] 10输出 1,9 3,7 代码: import java.util.HashMap; import java ...
- 阿里开发者招聘节 | 面试题14:如何实现两金额数据相加(最多小数点两位)
为帮助开发者们提升面试技能.有机会入职阿里,云栖社区特别制作了这个专辑--阿里巴巴资深技术专家们结合多年的工作.面试经验总结提炼而成的面试真题这一次将陆续放出(面试题官方参考答案将在专辑结束后统一汇总 ...
- 汇编语言---子程序设计举例(两组数据相加)
汇编语言---子程序设计举例(两组数据相加) 配置环境 要求 编辑程序 运行程序 后续 配置环境 首先双击下载程序进行下载.(没有安装程序的,可以下载我为大家准备的安装文件.) 不会安装的可以看一下文 ...
- C语言:使用冒泡算法将数组中的数据从大到小进行排序
/*使用冒泡算法将数组中的数据从大到小进行排序*/ #include<stdio.h> #define N 5 int main() {int a[N];int i,j,t;printf( ...
- 相加等于目标值的两个数
题目描述 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出和为目标值 target 的那两个整数,并返回它们的数组下标. 题目保证只有一种答案,但是要求给定数组 nums ...
- java 相加 等于一个数_Java 集合、数组 任意个数数字相加等于一个指定的数
一组数字 任意个数数字相加的和等于指定的数字. 比如数字集合 1,2,3, 4,5,6 ,列出所有数字相加等于6的可能性,那么结果有:1+2+3,2+4, 主要这里的结果不是数组打乱顺序相加,而是 ...
- python两列数据相加_pandas的两个DataFrame相加
最近在使用Python的pandas库时,涉及到需要往一个DataFrame添加一些噪声,噪声可以使用numpy的随机函数完成.但是相加时出现了问题. 一.环境 windows 7 64bit Pyt ...
- 阿里开发者招聘节 | 面试题14:如何实现两金额数据相加(最多小数点两位)...
摘要: 阿里巴巴资深技术专家们结合多年的工作.面试经验总结提炼而成的笔试真题这一次将陆续放出(面试题答案将在专辑分享结束后统一汇总分享).并通过这些笔试真题开放阿里巴巴工作机会,让更多的开发者加入到阿 ...
最新文章
- Python常用操作记录
- java编程控制电脑硬件_如何快速学习AP计算机中的Java编程?
- 如何对SAP Leonardo上的机器学习模型进行重新训练
- 查看Linux进程CPU过高具体的线程堆栈(不中断程序)
- root 授予oracle权限,oracle – 列出具有root(管理)权限的用户
- javascript和python的关系_JavaScript是否越来越像Python?
- eclipse.ini配置eclipse的启动参数
- 超越cookie - 使用DOM sessionStorage和localStorage来保存更多信
- Could not connect to any servers in your MongoDB Atlas cluster. One common reason is that you‘re try
- 鼠标锁定计算机全部硬盘,最牛B的清理磁盘方法,让你电脑开机贼拉快快
- 微信小程序switch 样式重写
- 【书影观后感 十三】甲申三百七十八年祭
- ABAP 关于 delete adjacent duplicates from的小心得
- matlab 求解高次方程,Matlab求解多元高次方程组
- 让图片动起来——Real_Time_Image_Animation
- 智能手表的机遇与挑战
- 董淳光 - SQLITE3 使用总结
- gardner环 matlab,HighSpeedLogic专题:位同步Gardner环的研究
- 关于opencv中cvtcolor函数的code参数用CV_BGR2YUV与CV_BGR2YCrCb的了解
- BFF在SoundCloud中的实践(翻译)