求最小值
类型:程序题

题目说明

利用分治算法,求一个非空整数列表中的最小值。补全以下代码。

算法说明:将列表不断二分,直到子列表长度小于等于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))
代码编辑器 加载中...
留空使用题目默认限制
{{resultStatus.text}}
正在加载运行记录...
乐编题库AI助手
人工客服
微信扫码联系客服
历史对话
{{ s.title || '未命名对话' }}
{{ s.created_at }}
暂无历史对话
我能帮助你什么?