Javascript Leetcode二和问题关于为什么我的代码不';行不通
给定一个整数数组,返回两个数字的索引,使它们相加到一个特定的目标 您可以假设每个输入都有一个解决方案,并且不能两次使用同一个元素Javascript Leetcode二和问题关于为什么我的代码不';行不通,javascript,algorithm,Javascript,Algorithm,给定一个整数数组,返回两个数字的索引,使它们相加到一个特定的目标 您可以假设每个输入都有一个解决方案,并且不能两次使用同一个元素 var twoSum = function(nums, target) { let comp = {}; for(let i =0; i<nums.length; i++){ let match = target - nums[i] 片段: var twoSum=函数(nums,目标){ 设comp={}; for(设i=0;
var twoSum = function(nums, target) {
let comp = {};
for(let i =0; i<nums.length; i++){
let match = target - nums[i]
片段:
var twoSum=函数(nums,目标){
设comp={};
for(设i=0;i twoSum([2,7,11,15,9)
comp背后的思想是存储之前在循环遍历数字数组时看到的值的索引。这意味着对象中的键可以指向索引0
在JavaScript中,考虑了0
,因此当放入if
语句时,它将跳过if
块,因为它被认为是false
,而是执行else
块
if(0){
console.log(“truthy”);//不执行
}否则{
控制台日志(“falsy”);
}
删除comp[match]>=0是什么意思?如果你的if语句看起来像if()
,那么你会得到一个语法错误。因为它的价值,我前几天解释了这个算法,这可能会帮助你更深入地理解它是如何工作的?@NickParsons我的意思是写if(comp[match])
而不是写if(comp[match]>=0)
是否有任何数字为负数?什么是nums
if(comp[match])
的计算结果将不同于if(comp[match]>=0)
如果comp[match]
为负。@艾米第一个测试用例是2,7,11,15,目标是9谢谢,我忘了零可以是错误的索引。如果你不介意扩展的话。我们什么时候能得到一个未定义的情况?
if(comp[match]>=0){
return [comp[match], i]
console.log(comp)
}
else{
comp[nums[i]]= i
}
console.log(comp)
}
};