This content originally appeared on DEV Community and was authored by Tammy Vo
Leetcode Problem: Two Sum II - Input Array Is Sorted
Objective:
Given a sorted array and target sum, find the two indexes that add up to the target sum.
Pattern: Two Pointer Technique
Approach:
- Have one pointer at the start and one pointer at the end of the array.
- Initialize the output int [] array with a size of 2, for the two indexes.
- Use a while loop with the condition where start < end, since the start index should never be greater than the end index. This means we have already checked all elements from left and right side.
- Inside while loop, check if the current sum is equal to the target. If it is, return the indexes.
- If the current sum is less than target, increment the start index.
- If the current sum is greater than target, decrement the end index.
Big-O Notation:
Time Complexity: O(n)
We have iterate through the while loop n times, for each element.
Space Complexity: O(1)
We do not use any additional data structures for storage.
Code:
class Solution {
public int[] twoSum(int[] numbers, int target) {
// use two pointer techique because the input is sorted.
int start = 0;
int end = numbers.length - 1;
int [] result = new int [2];
while (start < end){
int sum = numbers[start] + numbers[end];
if (sum == target){
result[0] = start + 1;
result[1] = end + 1;
break;
}
if (sum < target){
start++;
} else {
end--;
}
}
return result;
}
}
This content originally appeared on DEV Community and was authored by Tammy Vo
Tammy Vo | Sciencx (2022-07-06T21:36:31+00:00) Two Sum II – Input Array Is Sorted. Retrieved from https://www.scien.cx/2022/07/06/two-sum-ii-input-array-is-sorted/
Please log in to upload a file.
There are no updates yet.
Click the Upload button above to add an update.