From 0a81a963ae6f8e32fbe86f6fb35478c85f4a86cc Mon Sep 17 00:00:00 2001 From: Sangeeth Sudheer Date: Sat, 23 Apr 2022 18:27:33 +0530 Subject: [PATCH] two-sum-ii py3 --- .../README.md | 36 +++++++++++++++++++ .../python3/solution.py | 15 ++++++++ 2 files changed, 51 insertions(+) create mode 100644 0167_two-sum-ii-input-array-is-sorted/README.md create mode 100644 0167_two-sum-ii-input-array-is-sorted/python3/solution.py diff --git a/0167_two-sum-ii-input-array-is-sorted/README.md b/0167_two-sum-ii-input-array-is-sorted/README.md new file mode 100644 index 0000000..106a7c4 --- /dev/null +++ b/0167_two-sum-ii-input-array-is-sorted/README.md @@ -0,0 +1,36 @@ +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 1:** + + 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]. + + +**Example 2:** + + Input: numbers = [2,3,4], target = 6 + Output: [1,3] + Explanation: The sum of 2 and 4 is 6. Therefore index1 = 1, index2 = 3. We return [1, 3]. + + +**Example 3:** + + Input: numbers = [-1,0], target = -1 + Output: [1,2] + Explanation: The sum of -1 and 0 is -1. Therefore index1 = 1, index2 = 2. We return [1, 2]. + + +**Constraints:** + +* `2 <= numbers.length <= 3 * 104` +* `-1000 <= numbers[i] <= 1000` +* `numbers` is sorted in **non-decreasing order**. +* `-1000 <= target <= 1000` +* The tests are generated such that there is **exactly one solution**. \ No newline at end of file diff --git a/0167_two-sum-ii-input-array-is-sorted/python3/solution.py b/0167_two-sum-ii-input-array-is-sorted/python3/solution.py new file mode 100644 index 0000000..5ae501e --- /dev/null +++ b/0167_two-sum-ii-input-array-is-sorted/python3/solution.py @@ -0,0 +1,15 @@ +class Solution: + def twoSum(self, numbers: List[int], target: int) -> List[int]: + left = 0 + right = len(numbers) - 1 + + while left < right: + total = numbers[left] + numbers[right] + + if total == target: + return [left + 1, right + 1] + + if total > target: + right -= 1 + else: + left += 1