【发布时间】:2022-02-07 01:27:58
【问题描述】:
有没有办法优化这段代码? 我试图在排序列表旋转的列表中找到一个元素。 [8,9,10,11,12,6,7] 这里我要查找的元素是 6,索引为 5。
class Solution:
def search(self, nums: List[int]) -> int:
lenn = len(nums)-1
pivot, mid = 0, (0 + lenn)//2
if(nums[0] > nums[lenn]):
while True:
if(nums[mid] > nums[mid+1]):
pivot = mid+1
break
if(nums[mid] < nums[mid-1]):
pivot = mid
break
if(nums[mid] > nums[lenn]):
mid += 1
if(nums[mid] < nums[lenn]):
mid -= 1
return pivot
【问题讨论】:
-
def search(self, nums: List[int]) -> int- 那是正确的python吗? -
另外,根据您的描述,您正在尝试在列表中找到最小的元素,这非常简单。
-
@bbbbbbbbbb 是python。我知道我们可以使用 min() 找到 min,但我正在尝试对数方法。
-
你想改进哪个,算法还是执行时间?如果是后者,那么仅使用
numpy.argmin会明显更快,这还不够吗?
标签: python optimization