求最小值
题目说明
利用分治算法,求一个非空整数列表中的最小值。补全以下代码。
算法说明:将列表不断二分,直到子列表长度小于等于2,直接比较得出最小值,然后合并结果(返回两个子列表最小值中的较小者)。
def find_min(nums):
n = len(nums)
# 基线条件:问题规模足够小,直接求解
if n == 1:
return ①
elif n == 2:
return ②
# 分解:将大问题分成两个子问题
mid = n // 2
left_part = nums[:mid]
right_part = nums[mid:]
# 解决:递归求解子问题
left_min = find_min(left_part)
right_min = find_min(right_part)
# 合并:合并子问题的解
return ③
# 测试
test_list = [34, 12, 5, 78, 3, 56, 91, 23]
print('列表中的最小值是:', find_min(test_list)) 本题为编程题,提交代码并运行通过测试点后判分。
正在加载题目数据…
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析