1、二分查找 题目号码704
简单写一下因为时间有点来不及了周末再编辑
class Solution(object):
def search(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: int
"""
int lennum = length(nums)
int right = 1
int left = length(nums)
int middle = lennum/2
int flag = 0
while(left - right == 0)
if(middle = target)
flag = 1
return middle
break
elif(target > middle)
right = middle
else
left = middle
if(flag==0)
return -1
还没跑通,周末检查,好久没写python了好多语法都忘了
***重点,左闭右闭区间 [ ] / 左闭右开区间 [ )
***两个重点易错的判断条件
***1、while( ) left < right or left <= right
***2、middle = right or right -1
2、移除元素 暴力解法
class Solution(object):
def removeElement(self, nums, val):
"""
:type nums: List[int]
:type val: int
:rtype: int
"""
for(int i = 0; i <= length[nums]; i++)
if(nums[i] == val)
nums[i] = nums[i+1]
return length[nums]
双指针法:
两个指针,一个快指针遍历循环,一个慢指针记录新数组。时间换空间, 一层循环O(n)就可以解决。
如果找到了要删除的元素,慢指针就不更新元素。