From 957ddf9849fef971cdaa69af23dd275e7bd6c4e6 Mon Sep 17 00:00:00 2001 From: Prad Nukala Date: Wed, 26 Aug 2026 15:51:04 -0400 Subject: [PATCH] feat(work): add solution for problem 35 search-insert-position --- work/Easy/Array/35.search-insert-position.py | 58 ++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 work/Easy/Array/35.search-insert-position.py diff --git a/work/Easy/Array/35.search-insert-position.py b/work/Easy/Array/35.search-insert-position.py new file mode 100644 index 0000000..fb02344 --- /dev/null +++ b/work/Easy/Array/35.search-insert-position.py @@ -0,0 +1,58 @@ +""" +35. Search Insert Position +Difficulty: Easy +https://leetcode.com/problems/search-insert-position/ + +────────────────────────────────────────────────── + +Given a sorted array of distinct integers and a target value, return +the index if the target is found. If not, return the index where it +would be if it were inserted in order. + +You must write an algorithm with O(log n) runtime complexity. + + + +Example 1: + +Input: nums = [1,3,5,6], target = 5 +Output: 2 + +Example 2: + +Input: nums = [1,3,5,6], target = 2 +Output: 1 + +Example 3: + +Input: nums = [1,3,5,6], target = 7 +Output: 4 + + + +Constraints: + + • 1 <= nums.length <= 10^4 + + • -10^4 <= nums[i] <= 10^4 + + • nums contains distinct values sorted in ascending order. + + • -10^4 <= target <= 10^4 +""" + + +class Solution: + def searchInsert(self, nums: List[int], target: int) -> int: + l, r = 0, len(nums) - 1 + + while l <= r: + m = (l + r) // 2 + if nums[m] == target: + return m + elif nums[m] < target: + l = m + 1 + elif nums[m] > target: + r = m - 1 + + return (l + r) // 2 + 1