题目链接:https://www.nowcoder.com/test/4998655/summary
难度分析:较简单,很多题的数据都比较水。
1.买帽子:
度度熊想去商场买一顶帽子,商场里有N顶帽子,有些帽子的价格可能相同。度度熊想买一顶价格第三便宜的帽子,问第三便宜的帽子价格是多少?
解题思路分析:
题意很简单,只需要排个序,再从头开始找到第三个出现的就能得到答案,题目的数据才50,也就是说甚至是冒泡选择排序这种O(n^2)的复杂度都不会被卡掉,完美的送分题。
代码:
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
const int maxn = 50 + 5;
int a[maxn];
int main() {
int n;
cin >> n;
for(int i=0; i<n; i++) {
cin >> a[i];
}
sort(a, a+n);
int num = 0, ok = 0;
for(int i=0; i<n; i++) {
if(i == 0 || a[i] != a[i-1]) {
num++;
}
if(num == 3) {
cout << a[i] << endl;
ok = 1;
break;
}
}
if(!ok) {
cout << -1 << endl;
}
}
2.度度熊回家:
一个数轴上共有N个点,第一个点的坐标是度度熊现在位置,第N-1个点是度度熊的家。现在他需要依次的从0号坐标走到N-1号坐标。
但是除了0号坐标和N-1号坐标,他可以在其余的N-2个坐标中选出一个点,并直接将这个点忽略掉,问度度熊回家至少走多少距离?
解题思路分析:去掉一个点减少的距离就是这个点到相邻两个点的距离和减去两个相邻点的距离,也就是说去掉一个点减少的距离是固定的,那么我们只需要求出所有点去掉它所减小的距离的最大值,答案就