方法一:暴力法
function twoSum(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];
}
}
}
return null;
}
方法二:哈希表
function twoSum(nums, target) {
const map = new Map();
for (let i = 0; i < nums.length; i++) {
const complement = target - nums[i];
if (map.has(complement)) {
return [map.get(complement), i];
}
map.set(nums[i], i);
}
return null;
}
方法一:使用暴力法,通过两层循环遍历数组来查找符合条件的两个数。
方法二:使用哈希表,通过一次遍历数组,将每个数的值和索引存储在哈希表中,同时查找是否存在符合条件的数。文章来源:https://www.toymoban.com/news/detail-834123.html
暴力法的时间复杂度为O(n^2)
,空间复杂度为O(1)
;而哈希表的时间复杂度为O(n)
,空间复杂度为O(n)
。文章来源地址https://www.toymoban.com/news/detail-834123.html
到了这里,关于每日一练:前端js实现算法之两数之和的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!