给定一个长度为n 的非负整数序列,计算序列的最大值和最小值。 【输入】 第一行输入n(1<=n<=100)表示整数序列的个数 第二行输入n个不超过1000的非负数,空格隔开 【输出】 最大值和最小值 【输入样例】 6 3 0 8 7 5 9 【输出样例】 最大值=9 最小值=0
时间: 2024-12-15 18:18:02 浏览: 7
给定一个长度为 n 的非负整数序列,要计算这个序列的最大值和最小值,可以采用简单的线性扫描算法。首先,初始化两个变量,一个用于存储当前的最大值(初始值设为序列的第一个元素),另一个用于存储最小值(初始值也设为第一个元素)。然后遍历整个序列,对于每个元素,如果它大于当前的最大值,则更新最大值;如果它小于当前的最小值,则更新最小值。最后,遍历结束后,这两个变量就分别存储了序列中的最大值和最小值。
以下是 Python 代码示例:
```python
def find_min_max(arr):
n = len(arr)
max_val = arr[0]
min_val = arr[0]
for i in range(1, n):
if arr[i] > max_val:
max_val = arr[i]
elif arr[i] < min_val:
min_val = arr[i]
return max_val, min_val
# 示例
arr = [3, 0, 8, 7, 5, 9]
max_val, min_val = find_min_max(arr)
print("最大值 =", max_val)
print("最小值 =", min_val)
```
当你运行此程序并输入样例 `6` 和 `[3, 0, 8, 7, 5, 9]` 时,将会得到输出 `最大值=9` 和 `最小值=0`。
相关问题
给定长度n非负整数序列,计算最大跨度值(最大值-最小值)python
给定一个非负整数序列,计算其中的最大跨度值是指找到数组中的两个元素,使得第一个元素的索引小于第二个元素的索引,并计算这两个数之间的差(即第二个元素减去第一个元素)。在Python中,你可以通过遍历数组并维护当前最大值、最小值以及它们对应的索引,来解决这个问题。
下面是一个简单的实现步骤:
1. 初始化两个变量 `max_val` 和 `min_val` 为序列的第一个元素,同时记录下最大值和最小值的索引 `max_idx` 和 `min_idx` 为0。
2. 遍历序列从第二个元素开始(`i = 1`),对于每个元素:
- 如果当前元素大于 `max_val`,更新 `max_val` 和 `max_idx`。
- 同时检查当前元素是否小于等于 `min_val`,如果是,则更新 `min_val`,因为有可能找到了一个新的更小值。
3. 计算跨度 `span = max_idx + 1 - min_idx`(因为我们是从1开始计数的,所以加上1得到实际跨度)。
4. 返回 `max_val - min_val` 或者 `span`,取两者中的较大值作为结果。
以下是具体的Python代码实现:
```python
def maxSpan(nums):
if not nums:
return 0
max_val, max_idx, min_val, min_idx = nums[0], 0, nums[0], 0
for i in range(1, len(nums)):
if nums[i] > max_val:
max_val = nums[i]
max_idx = i
elif nums[i] <= min_val:
min_val = nums[i]
span = max_idx - min_idx + 1
return max(max_val - min_val, span)
```
给定一个长度为n的非负整数序列,请计算序列的最大跨度值(最大跨度值 = 最大值减去最小值)
首先,我们需要找到序列中的最大值和最小值。可以遍历整个序列,依次比较每个数与当前最大值和最小值的大小关系,更新最大值和最小值。
然后,计算最大跨度值,即最大值减去最小值。
代码实现:
def max_span(nums):
max_num = nums[0]
min_num = nums[0]
for num in nums:
if num > max_num:
max_num = num
if num < min_num:
min_num = num
return max_num - min_num
示例:
nums = [1, 5, 3, 9, 2]
print(max_span(nums)) # 输出:8
阅读全文