W
W
WarriorKodeK2018-03-31 00:25:08
JavaScript
WarriorKodeK, 2018-03-31 00:25:08

Why does it return an empty array?

I solve a problem on leetcode.
Given an array of integers, return indices of the two numbers such that they add up to a specific target.
You may assume that each input would have exactly one solution, and you may not use the same element twice.

Example:
Given nums = [2, 7, 11, 15], target = 9,

Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].

My decision:
var twoSum = function(nums, target) {
    let resultArr = [];
    for(let i = 0; i < nums.length; i++){
        if(nums[i] === (target - nums[i + 1])){
            resultArr.push(i, i + 1)
        }
    }
    return resultArr;
};

It passed the first check, but failed the second, and returns an empty array:
twoSum([3,2,3], 6) // => Expected: [0,2], а у меня []

Where do I screw up?

Answer the question

In order to leave comments, you need to log in

1 answer(s)
K
ksnk, 2018-03-31
@ksnk

Use 2 nested loops instead of one. Now you only have a result if the pair of answer numbers is consecutive.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question