代码随想录算法训练营day1|704.二分查找、27.移除元素、977.有序数组的平方
学习资料:https://programmercarl.com/数组理论基础.html
理解:
双指针可以同时获取一个数组的两个位置的值
二分查找:根据区间范围(左闭右闭、左闭右开)来判断左右指针比较方式
刷题记录:
704.二分查找(左闭右闭则<=,左右指针,middle=left+(right-left)//2, 因为考虑了等号情况所以下一步left=middle+1或right=middle-1)
点击查看代码
class Solution(object):
def search(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: int
"""
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
点击查看代码
class Solution(object):
def removeElement(self, nums, val):
"""
:type nums: List[int]
:type val: int
:rtype: int
"""
soft=0
slow=0
size=len(nums)
while soft < size:
if nums[soft] != val:
nums[slow] = nums[soft]
slow += 1
soft += 1
return slow
点击查看代码
class Solution(object):
def sortedSquares(self, nums):
"""
:type nums: List[int]
:rtype: List[int]
"""
left=0
right = len(nums)-1
k=len(nums)-1
result=[0]*len(nums)
while left <= right:
if nums[left]**2 > nums[right]**2:
result[k]=nums[left]**2
left += 1
else:
result[k]=nums[right]**2
right -= 1
k -= 1
return result
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性