Algorithm Code
Time: O(n) | Space: O(1)
1function twoSum(nums, target) {
2 left = 0
3 right = nums.length - 1
4
5 while (left < right) {
6 sum = nums[left] + nums[right]
7
8 if (sum === target) {
9 return [left, right]
10 } else if (sum < target) {
11 left++
12 } else {
13 right--
14 }
15 }
16 return [-1, -1]
17}Algorithm Steps
Step 1 of 7
1
Initialize Pointers
Set left pointer at start (0) and right pointer at end (6) of sorted array
2
Calculate Sum
Sum = nums[0] + nums[6] = 2 + 15 = 17. Target is 9.
3
Sum > Target
17 > 9, so move right pointer left to decrease sum
4
Calculate New Sum
Sum = nums[0] + nums[5] = 2 + 11 = 13. Target is 9.
5
Sum > Target
13 > 9, so move right pointer left again
6
Calculate New Sum
Sum = nums[0] + nums[4] = 2 + 7 = 9. Target is 9.
7
Found Target!
Sum equals target! Return indices [0, 4]
Two Pointers - Two Sum
Target: 9 | Current Sum: 0
Left: -1 | Right: -1
Left Pointer
Right Pointer
Found
Step 0 of 60%
0.25x4x