33. 搜索旋转排序数组
class Solution:
def search(self
, nums
: List
[int], target
: int) -> int:
if not nums
:
return -1
start
=0
end
=len(nums
)-1
while start
<=end
:
mid
=(start
+end
)//2
if target
==nums
[start
]:
return start
if target
<nums
[start
] and nums
[mid
]>=nums
[start
]:
start
=mid
+1
elif target
>nums
[start
] and nums
[mid
]<=nums
[start
]:
if mid
==start
:
start
+=1
else:
end
=mid
-1
else:
if target
>nums
[mid
]:
start
=mid
+1
elif target
<nums
[mid
]:
end
=mid
-1
else:
return mid
return -1
上面被注释掉的憨憨代码就是考试中写的,只考虑了一下即start==0得时候,后面得没考虑,这属实太憨了,记录一下避免以后犯同样错误,考虑问题要再全面一些!
转载请注明原文地址:https://ipadbbs.8miu.com/read-15946.html