1 条题解
-
0
📝 题目大意
给定 座桥的高度 ,所有高度互不相同。找出最高的桥是第几座,输出其编号。
💡 解题思路
- 题目分析:,数据范围很小,且所有 互不相同,意味着最高值唯一,不存在并列情况。
- 算法推导:从 到 遍历,维护
maxH(当前遇到的最大高度)和ans(最大高度对应的编号)。每当读入的 大于maxH时,更新maxH和ans。遍历结束后输出ans即可。 - 边界与细节:当 时,唯一的那座桥本身就是最高的,循环会正确地将
ans设为 。注意编号从 开始而非 。
⏱️ 复杂度分析
- 时间复杂度:,仅需一次遍历。
- 空间复杂度:,只使用了常数个变量。
💻 标准代码 (C++)
#include<bits/stdc++.h> using namespace std; int main() { int N, h, maxH = 0, ans = 0; cin >> N; // 遍历 N 座桥,编号从 1 开始 for (int i = 1; i <= N; i++) { cin >> h; // 如果当前桥的高度大于已记录的最大高度,则更新最大值和答案 if (h > maxH) { maxH = h; ans = i; } } // 输出最高桥的编号 cout << ans << endl; return 0; }
- 1
信息
- ID
- 647
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- (无)
- 递交数
- 1
- 已通过
- 1
- 上传者