百度2017代码

度度熊想去商场买一顶帽子,商场里有N顶帽子,有些帽子的价格可能相同。度度熊想买一顶价格第三便宜的帽子,问第三便宜的帽子价格是多少?

思路堆排序,手写堆较为复杂,只需要用三个数代替就好了,主要如果帽子价格相同要跳过循环。

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main() {
    int N;
    cin >> N;
    vector<int> v(N, 0);
    for (int i = 0; i<N; ++i) {
        cin >> v[i];
    }
    int min1 = 1000, min2 = 1000, min3 = 1000;
    for (int i = 0; i<N; ++i) {
        if(v[i]==min1||v[i]==min2||v[i]==min3) continue;
        if (v[i]<min3) {
            if (v[i]<min2) {
                if (v[i] < min1) {
                    min3 = min2;
                    min2 = min1;
                    min1 = v[i];
                }
                else {
                    min3 = min2;
                    min2 = v[i];
                }
            }
            else   min3 = v[i];
        }
    }
    if (min3 == 1000) cout << -1;
    else cout << min3;
    return 0;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
计数排序 
类似哈希的思路,空间复杂度较大,用一个数组存价格,就是简化吧的哈希,从最小的价格开始找,直到找到第三价格。
#include<iostream>
using namespace std;
int main(){
 int n,t=0,syn=0;
 int price[1000]={0};
 cin>>n;
 while(n--){
 cin>>t;
 price[t]=1;
}
t=0;
for(int i=0;i<1000;i++){
if(price[t]&&syn<3)
 syn++;
if(syn==3)
 break;
    t++;
}
syn==3?cout<<t:cout<<-1;
}
posted @   zzas12345  阅读(162)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示