酷代码 AI
菜单
服务商

给定一个长度为n的非负整数序列,请计算序列的最大跨度值(最大跨度值 = 最大值减去最小值)。 输入 一共2行,第一行为序列的个数n(1 <= n <= 1000),第二行为序列的 𝑛 个绝对值不超过 10 9 的整数,整数之间以一个空格分隔。 输出 输出一行,表示序列的最大跨度值。 样例输入 复制 6 3 0 8 7 5 9 样例输出 复制 9

#include <iostream> #include <algorithm> using namespace std; int main() { int n; cin >> n; long long minVal = 1e10, maxVal = -1e10; // 初始化最小值和最大值 for (int i = 0; i < n; i++) { long long num; cin >> num; minVal = min(minVal, num); // 更新最小值 maxVal = max(maxVal, num); // 更新最大值 } cout << maxVal - minVal << endl; // 输出最大跨度值 return 0; } 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: - 初始化最小值和最大值时,确保初始值覆盖所有可能的输入范围,避免因初始值不当导致计算错误。 - 处理大整数时,使用足够大的数据类型(如 long long)防止溢出,特别是当数值接近 10^9 时。 - 输入序列可能包含负数,初始化最大值应为足够小的负数,最小值应为足够大的正数,以确保正确更新。 [2026-01-10 20:36:57 | AI写代码神器 | 229点数解答]

相关提问
发财导航,免费问AI
实用工具查看更多