1 条题解
-
0
练59.1 第n大的数
解题思路
给定固定10元素,函数将其降序排序后返回第n项。输入n不合法则继续读取,直到1~10。
正确性说明
按顺序完成所述运算后,每个输入元素都被处理在相应位置或统计项中。保存的中间状态与已处理数据对应,最终输出与题目定义一致。
易错点
题目未要求去重,重复87占两个名次。
复杂度
固定10数,时间O(1),空间O(1)。
参考代码(C++11)
#include <bits/stdc++.h> using namespace std; int nthNumber(int n) { int a[] = {99, 200, 95, 87, 98, -12, 30, 87, 75, -25}; sort(a, a + 10, greater<int>()); return a[n - 1]; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n; while (cin >> n) if (n >= 1 && n <= 10) { cout << nthNumber(n) << "\n"; break; } return 0; }
- 1