找数组的最大值和最小值
对于一个数字数组,我们需要在其中找到最大值和最小值,有时候这个操作也是我们实现其他问题的基础。
基本思路
在对数组进行查找之前,我们需要先定义两个变量max
和min
,表示当前最大值和最小值。然后遍历数组中的每个元素,与最大值和最小值进行比较,如果当前元素比最大值大,则更新最大值,如果当前元素比最小值小,则更新最小值。最终遍历完成时,最大值和最小值即为数组中的最大值和最小值。
具体的代码实现如下所示:
def find_max_min(arr):
if len(arr) == 0:
return None, None
max_val = arr[0]
min_val = arr[0]
for num in arr:
if num > max_val:
max_val = num
elif num < min_val:
min_val = num
return max_val, min_val
代码说明
上面的代码定义了一个find_max_min
函数,用于查找数组中的最大值和最小值。函数中使用了一个if
语句来判断输入数组是否为空,如果为空,则返回两个值都为None
的元组。如果输入不为空,则定义max_val
和min_val
变量分别为数组的第一个元素,然后循环遍历数组中的每个元素。在循环中,首先判断当前元素是否大于max_val
,如果是,则更新max_val
,否则判断当前元素是否小于min_val
,如果是,则更新min_val
。最后返回max_val
和min_val
即可。
示例说明
让我们来看两个示例,以说明这个函数的用法。
示例一:查找整数数组中的最大值和最小值
假设我们有一个整数数组arr
,其内容为[23, 45, 12, 67, 89, 34, 78, 33]
。要查找这个数组中的最大值和最小值,只需要调用find_max_min
函数即可:
arr = [23, 45, 12, 67, 89, 34, 78, 33]
max_val, min_val = find_max_min(arr)
print(f"最大值为: {max_val}, 最小值为: {min_val}")
输出结果为:
最大值为: 89, 最小值为: 12
可以看到,函数成功地找到了数组中的最大值和最小值。
示例二:查找浮点数数组中的最大值和最小值
我们同样可以使用find_max_min
函数来查找浮点数数组中的最大值和最小值。例如,假设我们有一个浮点数数组arr
,其内容为[3.14, 5.78, 1.23, 2.68, 9.87, 4.56]
。要查找这个数组中的最大值和最小值,只需要调用find_max_min
函数即可:
arr = [3.14, 5.78, 1.23, 2.68, 9.87, 4.56]
max_val, min_val = find_max_min(arr)
print(f"最大值为: {max_val}, 最小值为: {min_val}")
输出结果为:
最大值为: 9.87, 最小值为: 1.23
可以看到,函数同样成功地找到了数组中的最大值和最小值,而且这个数组中的元素全部为浮点数。