Binary Search(6)
-
[Leetcode] 34. Find First and Last Position of Element in Sorted Array
🗓️ Daily LeetCoding Challenge May, Day 7 import bisect class Solution: def longestObstacleCourseAtEachPosition(self, obstacles: List[int]) -> List[int]: lis = [] result = [] for obstacle in obstacles: idx = bisect.bisect_right(lis, obstacle) if idx == len(lis): lis.append(obstacle) else: lis[idx] = obstacle print(idx, lis, obstacle) result.append(idx+1) return result
2023.05.09 -
[Leetcode] 162. Find Peak Element
정렬이 되어 있지 않은 배열의 이분 탐색 옆으로 한칸씩만 이동하면 마지막 mid가 업데이트 되지 않는다. class Solution: def findPeakElement(self, nums: List[int]) -> int: left, right = 0, len(nums) - 1 while left nums[mid + 1]: right = mid else: left = mid + 1 return left
2023.05.02 -
[Leetcode] 153. Find Minimum in Rotated Sorted Array
class Solution: def findMin(self, nums: List[int]) -> int: left, right = 0, len(nums) - 1 mid = -1 while left nums[mid]: return nums[mid] return nums[mid]
2023.05.02 -
[Leetcode] 74. Search a 2D Matrix
class Solution: def searchMatrix(self, matrix: List[List[int]], target: int) -> bool: for line in matrix: left, right = 0, len(line) - 1 while left
2023.05.01 -
[Leetcode] 33. Search in Rotated Sorted Array
class Solution: def search(self, nums: List[int], target: int) -> int: left, right = 0, len(nums) - 1 while left
2023.05.01 -
[Leetcode] 34. Find First and Last Position of Element in Sorted Array
class Solution: def searchRange(self, nums: List[int], target: int) -> List[int]: left, right = 0, len(nums) - 1 answer = [-1, -1] while left nums[left]: left += 1 elif target == nums[left]: answer[0] = left if target < nums[right]: right -=1 elif target == nums[right]: answer[1] = right return answer
2023.05.01