LeetCode 35:搜索插入位置
最近又双叒叕开始刷题了,看了很多大佬的解析,受益良多,自己也开始写写刷题历程。根据大佬指导,第一题是就拿《LeetCode 35:搜索插入位置》练练手,共勉。
一、题目
题目未截全,如有需要,详见 https://leetcode-cn.com/problems/search-insert-position/
二、解析
因为题目是一个有序的数组,且数组的元素没有重复。对有序数组进行查找,并且返回索引值。这种情况可以使用二分法
1.首先确定区间:[left,right),left从0开始,使用左闭右开的规则,这样可以覆盖到空区间、元素不在列表中的情况
2.关键变量定义:left = 0; right = len(nums); mid = left + (right - left)//2;因为左区间是闭区间,所以 left = mid + 1;right = mid
3.小知识补充:其中在python语言中 // 是指整除不要余数, / 是指正常除有余数;mid中取mid = left + (right - left)//2可以防止大数溢出
三、编码
class Solution:
def searchInsert(self, nums: list[int], target: int) -> int:
left,right = 0,len(nums)
while left < right:
mid = left + (right-left) // 2
if target > nums[mid]:
left = mid + 1
else:
right = mid
return left