百度2017春招笔试真题编程题集合 题解

题目链接: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个坐标中选出一个点,并直接将这个点忽略掉,问度度熊回家至少走多少距离?

解题思路分析:去掉一个点减少的距离就是这个点到相邻两个点的距离和减去两个相邻点的距离,也就是说去掉一个点减少的距离是固定的,那么我们只需要求出所有点去掉它所减小的距离的最大值,答案就

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值