以下是一个使用 C++ 解决此问题的示例代码: ```cpp #include <iostream> #include <vector> int countVisiblePairs(std::vector<int> numbers) { int count = 0; int n = numbers.size(); for (int i = 0; i < n; ++i) { for (int j = i + 1; j < n; ++j) { bool canSee = true; for (int k = i + 1; k < j; ++k) { if (numbers[k] > numbers[i] && numbers[k] > numbers[j]) { canSee = false; break; } } if (canSee) { count++; } } } return count; } int main() { std::vector<int> numbers = {1, 3, 2, 4, 5}; int result = countVisiblePairs(numbers); std::cout << "能互相看见的对数为: " << result << std::endl; return 0; } ``` 额外需要注意的逻辑点: 1. 对于循环边界的处理要仔细,确保不会出现越界错误。 2. 注意在判断能否看见时的逻辑,保证准确性。 3. 对于输入的数字序列,要考虑异常情况,比如空序列或者全是相同数字的情况。 [2025-04-12 23:26:39 | AI写代码神器 | 328点数解答]