分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

leetcode--js--两数之和

发布时间:2023-09-06 01:53责任编辑:董明明关键词:js

问题描述:

给定一个整数数列,找出其中和为特定值的那两个数。

你可以假设每个输入都只会有一种答案,同样的元素不能被重用。

示例:

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

我的答案:

 1 /** 2 ?* @param {number[]} nums 3 ?* @param {number} target 4 ?* @return {number[]} 5 ?*/ 6 var twoSum = function(nums, target) { 7 ?????????????var a=[]; 8 ????????????for(var i=0;i<nums.length-1;i++){ 9 ????????????????for(var j=i+1;j<nums.length;j++){10 ????????????????????if(nums[i]+nums[j]==target){11 ????????????????????????a.push(i);12 ????????????????????????a.push(j);13 ????????????????????}14 ????????????????}15 ????????????}16 ????????????return a;17 };

优秀答案:

参考 http://www.cnblogs.com/kiznaiver1998/p/8605809.html

解题思路:构造了arr{ key:value} 对象。将target-nums[i] 差值放在arr{ }对象中,并存储其位置i。然后每次就在arr{ }对象中找有没有对应的数即可。

function twoSum(nums, target) { ???var arr = {}; ???for (var i = 0; i < nums.length; i++) { ???????if (typeof(arr[nums[i]]) !== "undefined"){ ???????????return [arr[nums[i]], i]; ???????????????????????????????} ????????????????????????????????arr[target - nums[i]] = i; ???}}

leetcode--js--两数之和

原文地址:https://www.cnblogs.com/hiluna/p/8748207.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved