在做leetcode的题目. 练习2sum的时候, 我的代码如下
var twoSum = function(nums, target) {
const set = {};
for (var i = 0; i < nums.length; i++) {
const val = nums[i];
const find = set[val];
if (find !== undefined) {
return [find, i,];
} else {
// 如果将来某个值满足target - nums[i], 则可以和这个位置匹配
set[target - val] = i;
}
}
};
80 ms, 排在60%
然后看了排在80%的代码, 就比我少了一个else, 我自己测试一下代码
var twoSum = function(nums, target) {
const set = {};
for (var i = 0; i < nums.length; i++) {
const val = nums[i];
const find = set[val];
if (find !== undefined) {
return [find, i,];
}
// 就这里去除了else
// 如果将来某个值满足target - nums[i], 则可以和这个位置匹配
set[target - val] = i;
}
};
56 ms, 排88%
一个else语句能有这么大影响? 什么原理?