欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > leetcode热题100道——两数之和

leetcode热题100道——两数之和

2025/3/22 0:47:10 来源:https://blog.csdn.net/2301_77523019/article/details/146408023  浏览:    关键词:leetcode热题100道——两数之和

给定一个整数数组 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]

Java解答(哈希法)

class Solution {public int[] twoSum(int[] nums, int target) {int length = nums.length;HashMap<Integer,Integer> map = new HashMap<>();for(int i = 0;i < length;i++){if(map.containsKey(target - nums[i])){return new int[]{i,map.get(target - nums[i])};}map.put(nums[i],i);}return new int[0];}
}

结果:

 

js解答

方法一:哈希法

var twoSum = function (nums, target) {//使用map记录元素的值和索引var map = new Map();for (let i = 0;i < nums.length;i++) {if (map.has(target - nums[i])) {return [map.get(target - nums[i]), i]} else {map.set(nums[i], i)}}return []
};

结果:

 方法二:暴力法

var twoSum = function (nums, target) {for(let i = 0;i < nums.length;i++){const index = nums.findIndex((item, idx) => target - item == nums[i] && idx != i);if (index !== -1) {return [i, index];}}return []
};

结果:

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词