I am trying to solve the Two Sum II - Input Array Is Sorted
question on leetcode, it's giving me Time Limit Exceeded
so I guess my code isn't optimized well and needs more efficient solutions. But I am not so good at it so to be specific how can I remove two for-loops
with one in my code.
Ques1: Two Sum II - Input Array Is Sorted
Given a 1-indexed array of integers numbers that is already sorted in non-decreasing order, find two numbers such that they add up to a specific target number. Let these two numbers be numbers[index1] and numbers[index2] where 1 <= index1 < index2 <= numbers.length.
Return the indices of the two numbers, index1 and index2, added by one as an integer array [index1, index2] of length 2. The tests are generated such that there is exactly one solution. You may not use the same element twice. Your solution must use only constant extra space.
Example:
Input: numbers = [2,7,11,15], target = 9
Output: [1,2]
Explanation: The sum of 2 and 7 is 9. Therefore, index1 = 1, index2 = 2. We return [1, 2].
Ques link
My code: Test cases 20 / 21
var twoSum = function(numbers, target) {
let arr=[];
for(let i=0; i<numbers.length; i++){
let findNum= target - numbers[i];
for(let j=i+1;j<numbers.length; j++){
if(numbers[j]===findNum)
arr.push(i+1, j+1);
}
}
return arr
};
How can I optimize my code so that it can run all test cases?