万卷网 > 题目详情
题型:单选题

旋转数组是一种常见的数据结构问题,通常是指一个有序数组经过旋转后,使得所有元素逆序排列。整数数组 nums 按升序排列,数组中的值互不相同。在预先未知的某个下标 k(0 <= k < nums.length)上进行了旋转,使数组变为 [nums[k], nums[k + 1],…, nums[n - 1], nums[0], nums[1],…, nums[k - 1]](下标从 0 开始计数)。

现在给定旋转后的数组 nums 和一个整数 target,如果 nums 中存在这个目标值 target,则返回它的下标,否则返回-1。

下面程序中()处应填入的程序是:例如,给定一个数组 [4,5,6,7,0,1,2],它可能经过旋转变为 [0,1,2,4,5,6,7]。二分查找算法搜索旋转排序数组的程序,下面横线中,应填入的一行或多行代码是( )

def search(nums, target):
	left, right = 0, len(nums) - 1
	
	while left <= right:
		mid = (left + right) // 2
		if nums[mid] == target:
			return True
			
		if nums[mid] > nums[right]:
			if nums[mid] > target or nums[left] <= target:
				right = mid - 1
			else:
				left = mid + 1
				
		elif nums[mid] < nums[right]:
			_______________________
		else:
			right -= 1
			
	return False
A.
if nums[mid] < target or nums[right] >= target:
	lleft = mid - 1
else:
	lright = mid + 1
B.
if nums[mid-1] < target and nums[right+1] >= target:
	left = mid + 1
else:
	right = mid - 1
C.
if nums[mid] < target or nums[right] >= target:
	lleft = mid
else:
	lright = mid
D.
if nums[mid] < target and nums[right] >= target:
	lleft = mid + 1
else:
	lright = mid - 1
更新时间:2025-05-30 09:34:56 |
【知识点】 CCF—GESP Python五级

相似题推荐

单选题

唯一分解定理描述的内容是()。

A.

任何正整数都可以表示为两个素数的和。

B.

任何大于1的合数都可以唯一分解为有限个质数的乘积。

C.

两个正整数的最大公约数总是等于它们的最小公倍数除以它们的乘积。

D.

所有素数都是奇数。

2026-07-18
判断题

二分查找仅适用于有序数据。若输入数据无序,当仅进行一次查找时,为了使用二分而排序通常不划算。()

A.正确 B.错误
2026-07-18
判断题

使用贪心算法解决问题时,通过对每一步求局部最优解,最终一定能找到全局最优解。()

A.正确 B.错误
2026-07-18
判断题

以下 fib 函数计算第 n 项斐波那契数( fib(0)=0 , fib(1)=1 ),其时间复杂度为 O(n)。()

def fib(n) :
    if n &lt;= 1 :
        return n
    return fib(n - 1) + fib(n - 2)
A.正确 B.错误
2026-07-18
判断题

通过在数组的第一个、最中间和最后一个这3个数据中选择中间值作为枢轴(比较基准),快速排序算法可降低落入最坏情况的概率。()

A.正确 B.错误
2026-07-18
公众号
客服 反馈
顶部