酷代码 AI
菜单
服务商

C++ 实现:计算一排鹅与最高、最矮鹅的身高差及代码详解

```cpp #include <iostream> #include <vector> #include <algorithm> int main() { int n; std::cin >> n; std::vector<long long> heights(n); for (int i = 0; i < n; ++i) { std::cin >> heights[i]; } long long maxHeight = *std::max_element(heights.begin(), heights.end()); long long minHeight = *std::min_element(heights.begin(), heights.end()); for (int i = 0; i < n; ++i) { std::cout << maxHeight - heights[i]; if (i < n - 1) { std::cout << " "; } } std::cout << std::endl; for (int i = 0; i < n; ++i) { std::cout << heights[i] - minHeight; if (i < n - 1) { std::cout << " "; } } std::cout << std::endl; return 0; } ``` 代码解释 1. 输入处理: - 首先读取鹅的数量 `n`。 - 接着使用 `std::vector` 存储每只鹅的身高,通过循环将输入的身高数据存入 `heights` 向量。 2. 找出最高和最矮的鹅的身高: - 使用 `std::max_element` 函数找出 `heights` 向量中的最大值,即最高鹅的身高 `maxHeight`。 - 使用 `std::min_element` 函数找出 `heights` 向量中的最小值,即最矮鹅的身高 `minHeight`。 3. 输出每只鹅与最高鹅的身高差: - 遍历 `heights` 向量,计算每只鹅与最高鹅的身高差并输出,相邻的差值用空格分隔。 4. 输出每只鹅与最矮鹅的身高差: - 再次遍历 `heights` 向量,计算每只鹅与最矮鹅的身高差并输出,相邻的差值用空格分隔。 复杂度分析 - 时间复杂度:$O(n)$,主要是遍历向量和查找最大最小值的操作。 - 空间复杂度:$O(n)$,主要用于存储每只鹅的身高。 ######[AI问答 | 549点数解答 | 2025-11-16 20:19:06]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]