Leetcode Rando Stuff
Tags: coding, algorithm, leetcode
Last Updated on Fri, 06 Oct 2023 16:05:41 GMT - Edit Page
Midpoint
class Solution:
def search(self, nums: List[int], target: int) -> int:
lo = 0
hi = len(nums) - 1
while lo <= hi:
mid = (lo + hi) // 2
n = nums[mid]
if n == target:
return mid
elif n < target:
lo = mid + 1
else:
hi = mid - 1
return -1
Q: Why do we find the middle point like this? Why not (lo - hi)//2
?
A: We find the middle point by adding the low (lo) and high (hi) numbers together and then dividing by 2. This is because when you add them together, you get the total of the two numbers. When you divide that total by 2, you get the point right in the middle of them. If we did (lo - hi)//2
, we might get a wrong number because we're taking one number away from the other, instead of finding the point in between them.