class Solution:
# @param {integer[]} nums
# @param {integer} target
# @return {integer}
def search(self, nums, target):
"""
Complixity is O(n)
try:
return nums.index(target)
except:
return -1
"""
"binary manner, O(logn)"
l,u=0,len(nums)-1
while l<=u:
mid=(l+u)>>1
if nums[mid]==target:
return mid
elif nums[mid]>nums[l] and nums[l]<=target<nums[mid] or nums[mid]<nums[l] and not(nums[mid]<target<=nums[u]):
u=mid-1
else: l=mid+1
# @param {integer[]} nums
# @param {integer} target
# @return {integer}
def search(self, nums, target):
"""
Complixity is O(n)
try:
return nums.index(target)
except:
return -1
"""
"binary manner, O(logn)"
l,u=0,len(nums)-1
while l<=u:
mid=(l+u)>>1
if nums[mid]==target:
return mid
elif nums[mid]>nums[l] and nums[l]<=target<nums[mid] or nums[mid]<nums[l] and not(nums[mid]<target<=nums[u]):
u=mid-1
else: l=mid+1
return -1
本文深入探讨了在不同场景下搜索算法的选择与优化策略,包括线性搜索与二分搜索的原理、复杂度分析及实战应用,旨在提高搜索效率与性能。
1935

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



