feat(792-binary-search): add py3 solution

This commit is contained in:
2022-04-02 15:39:31 +05:30
parent 813d8e0ccc
commit 2b889c6f89
9 changed files with 554 additions and 6 deletions

View File

@@ -0,0 +1,26 @@
Given an array of integers `nums` which is sorted in ascending order, and an integer `target`, write a function to search `target` in `nums`. If `target` exists, then return its index. Otherwise, return `-1`.
You must write an algorithm with `O(log n)` runtime complexity.
**Example 1:**
```
**Input:** nums = \[-1,0,3,5,9,12\], target = 9
**Output:** 4
**Explanation:** 9 exists in nums and its index is 4
```
**Example 2:**
```
**Input:** nums = \[-1,0,3,5,9,12\], target = 2
**Output:** -1
**Explanation:** 2 does not exist in nums so return -1
```
**Constraints:**
* `1 <= nums.length <= 104`
* `-104 < nums[i], target < 104`
* All the integers in `nums` are **unique**.
* `nums` is sorted in ascending order.

View File

@@ -0,0 +1,16 @@
class Solution:
def search(self, nums: List[int], target: int) -> int:
start = 0
end = len(nums) - 1
while start <= end:
mid = (start + end) // 2
if nums[mid] == target:
return mid
elif target < nums[mid]:
end = mid - 1
else:
start = mid + 1
return -1