酷代码 AI
菜单
服务商

C++数组两两分组求较小数之和实现

好的,这个问题的核心是遍历数组,按照每两个数一组的方式,找出每组中较小的数,并将它们累加起来。下面给出C++的实现代码及详细注释。 ## 💻 实现代码 ```cpp #include <iostream> #include <vector> #include <algorithm> // 用于std::min /** * 计算所有数对中较小数之和。 * @param nums 整数数组,长度n为偶数。 * @return 较小数之和。 */ int sumOfMinInPairs(const std::vector<int>& nums) { int sum = 0; int n = nums.size(); // 每两个数为一组,步长为2 for (int i = 0; i < n; i += 2) { // 取出当前组的两个数 int a = nums[i]; int b = nums[i + 1]; // 找出较小数并累加 sum += std::min(a, b); } return sum; } int main() { // 示例输入:n个整数,n为偶数 std::vector<int> numbers = {5, 3, 8, 1, 9, 2}; int result = sumOfMinInPairs(numbers); std::cout << "较小数之和为: " << result << std::endl; return 0; } ``` ## 🔍 详细说明 - **输入要求**:输入的整数个数 `n` 必须是偶数。 - **分组逻辑**:每两个相邻的数为一组,第一和第二个数一组,第三和第四个数一组,不需要任何排序。 - **计算过程**:对每一组使用 `std::min` 取出较小的数,然后加到总和 `sum` 中。 - **时间复杂度**:O(n),只需一次遍历。 - **空间复杂度**:O(1),只使用了常数级别额外空间。 例如对于输入 `{5, 3, 8, 1, 9, 2}`: - 第一组 (5, 3) → min = 3 - 第二组 (8, 1) → min = 1 - 第三组 (9, 2) → min = 2 - 总和 = 3 + 1 + 2 = 6 ######[AI问答 | 514点数解答 | 2026-05-22 19:52:27]

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