第一章 数组part01
704二分查找
1.左闭右闭
class solution(object):
def search(self,nums,target):
left,right=0,len(nums)-1
while left<=right:
middle=left+(right-left)//2
if nums[middle]>target:
right=middle-1
elif nums[middle]<target:
left=middle+1
else:
return middle
return -1
2.左闭右开
class solution(object):
def search(self,nums,target):
left,right=0,len(nums)
while left<right:
middle=left+(right-left)//2
if nums[middle]>target:
right=middle
elif nums[middle]<target:
left=middle+1
else:
return middle
return -1
27.移除元素
1.暴力解法
class Solution:
def remuveElement(self,nums,val):
i=0
l=len(nums)
while i<l:
if nums[i] == val:
for j in range(i+1, l):
nums[j - 1] = nums[j]
l -= 1
i -= 1
i += 1
return l
2.双指针法
class Solution:
def removeElement(self, nums, val) :
fast=0
slow=0
size=len(nums)
while fast<size:
if nums[val]!=fast:
nums[slow]=nums[fast]
slow+=1
fast+=1
return slow