解决方法1:使用两个变量来保存最大值和最小值
def find_max_min(nums):
max_value = float('-inf') # 初始化最大值为负无穷大
min_value = float('inf') # 初始化最小值为正无穷大
for num in nums:
if num > max_value:
max_value = num # 更新最大值
if num < min_value:
min_value = num # 更新最小值
return max_value, min_value
解决方法2:使用递归来找到最大值和最小值
def find_max_min(nums):
if len(nums) == 1:
return nums[0], nums[0] # 当只有一个元素时,最大值和最小值都是该元素
if len(nums) == 2:
return (nums[0], nums[1]) if nums[0] < nums[1] else (nums[1], nums[0])
mid = len(nums) // 2
max_left, min_left = find_max_min(nums[:mid]) # 递归找到左半部分的最大值和最小值
max_right, min_right = find_max_min(nums[mid:]) # 递归找到右半部分的最大值和最小值
max_value = max(max_left, max_right)
min_value = min(min_left, min_right)
return max_value, min_value
注意:以上两种方法都是基于比较的方式来找到最大值和最小值,因此时间复杂度都是O(n),其中n是输入数组的长度。
上一篇:不使用数组拖放Angular
下一篇:不使用数组转换为二进制