javascript - 扩展此二和算法的工作原理
问题描述
我目前正在练习 JS,在 Leetcode 上遇到了这个问题:
二和
给定一个整数数组 nums 和一个整数目标,返回这两个数字的索引,使它们加起来等于目标。
您可能会假设每个输入都只有一个解决方案,并且您可能不会两次使用相同的元素。
您可以按任何顺序返回答案。
示例 1:
输入:nums = [2,7,11,15], target = 9 输出:[0,1] 输出:因为 nums[0] + nums[1] == 9,所以我们返回 [0, 1]。
示例 2:
输入:nums = [3,2,4],目标 = 6 输出:[1,2]
示例 3:
输入:nums = [3,3],目标 = 6 输出:[0,1]
我用这个解决了它:
const 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;
};
但后来我检查了其他解决方案的讨论并偶然发现了这个:
var twoSum = function(nums, target) {
for(let [k,v] of nums.entries()){
if(nums.slice(k+1).lastIndexOf(target-v)>-1) return [k,nums.lastIndexOf(target-v)]}};
https://leetcode.com/problems/two-sum/discuss/1543367/3-Lines-JavaScript-Two-Sum
我对它应该如何工作特别是在第 3 行感到困惑。尝试控制台记录每个步骤,但最终让自己更加困惑。
将不胜感激任何帮助。谢谢!
解决方案
推荐阅读
- angular-material - 如何在角度材料对话框中关闭 matdialog 时管理发送的内容
- vba - 只想刷新数据透视表而不刷新查询
- mysql - 如何根据不运行差异对记录进行分类?
- java - Spring Batch PathMatchingResourcePatternResolver.getResources() 不适用于 https url
- asp.net-core-mvc - 将授权策略应用于整个控制器时忽略消费属性
- javascript - Nuxt/Vue - 缩放内容以适应父 div
- flutter - 颤振标题不会改变
- python-3.x - 将多个文件从云存储加载到不同表中的大查询
- vba - PowerPoint vba 使用形状对象而不是形状名称对形状进行分组
- sql - 尝试通过 EntityManager 执行具有多个 CREATE VIEW 语句的脚本时出现 SQL 语法错误