704二分查找(简单)
1. 左闭右闭
题目链接:https://leetcode.cn/problems/binary-search/
def search(self, nums: List[int], target: int) -> int:
left = 0
right = len(nums)-1
while left<right:
mid = left +(right-left)//2
if nums[mid] < target:
left=mid+1
elif nums[mid] > target:
right=mid-1
else:
return mid
return -1
右边界赋值:right=len(nums)-1,right=mid-1
2. 右闭右开
def search(self, nums: List[int], target: int) -> int:
left = 0
right = len(nums)
while left<right:
mid = left +(right-left)//2
if nums[mid] < target:
left=mid+1
elif nums[mid] > target:
right=mid
else:
return mid
return -1
右边界赋值:right=len(nums),right=mid
27移除元素(简单)
题目链接:https://leetcode.cn/problems/remove-element/
def removeElement(self, nums: List[int], val: int) -> int:
left=0
right=0
_len=len(nums)
while right<_len:
if nums[right]==val:
right+=1
else:
nums[left]=nums[right]
left+=1
right+=1
return left
快慢指针,用右边指针去遍历所有元素,左边指针来计数。
总结:
由于以前已经刷过一遍[代码随想录]了,这次报名就是想办法监督自己刷题,复习一下算法知识!
文章详细介绍了两种二分查找的实现方式——左闭右闭和右闭右开,以及如何在给定列表中使用快慢指针移除特定元素的方法。这些是算法题目的常见解决方案,旨在复习和巩固编程技巧。
466

被折叠的 条评论
为什么被折叠?



