机试指南第二章-经典入门-Hash的应用自解

Hash的应用:

Hash即散列,不像数据结构与算法中讲的各种Hash方法和冲突处理等过多的阐述,以下主要介绍Hash在机试试题解答中的作用。

例2.5 统计同成绩学生人数

Hash解法AC代码:(一般想到的也是这种解法)

#include<cstring>
#include<iostream>
using namespace std;

int grade[105];

int main()
{
    int n, m, index;
    memset(grade, 0, sizeof(grade));
    while (cin >> n)
    {
        for (int i = 0; i < n; i++)
        {
            cin >> m;
            grade[m]++;
        }
        cin >> index;
        cout << grade[index] << endl;
    }
    return 0;
}

例2.6 Sort

时间限制:1 秒 内存限制:128 兆

题目描述:

给你n个整数,请按从大到小的顺序输出其中前m大的数。

输入:

每组测试数据有两行,第一行有两个数n,m(0<n,m<1000000),第二行包含n 个各不相同,且都处于区间[-500000,500000]的整数。

输出:

对每组测试数据按从大到小的顺序输出前m大的数。

样例输入:

5 3 3 -35 92 213 -644

样例输出:

213 92 3 

AC代码:

#include<cstring>
#include<iostream>

using namespace std;

int num[1000001];
const int UPSET = 500000;
const int DOWNSET = -500000;

int main()
{
    int n, m, x;
    memset(num, 0, sizeof(num));
    while (cin >> n >> m)
    {
        for (int i = 0; i < n; i++)
        {
            cin >> x;
            num[x+ UPSET]++;
        }
        for (int i = UPSET; i >= DOWNSET; i--)
        {
            if (num[i + UPSET] == 1)
            {
                cout << i;
                m--;
                if (m != 0)cout << " ";
                else
                {
                    cout << endl;
                    break;
                }
            }
        }
    }
    return 0;
}

原文地址:https://www.cnblogs.com/yun-an/p/11028552.html

时间: 2024-10-02 20:26:39

机试指南第二章-经典入门-Hash的应用自解的相关文章

机试指南第二章-经典入门-查找例题自解

查找: 对于查找问题,有难有易.可能只是直接地对某个数字的查找,也可能涉及搜索等相对难度更大的算法.这里先介绍查找的基础概念和方法. 例 2.9 找 x AC代码: #include<cstring> #include<iostream> using namespace std; int num[205]; int main() { int n, m, x; memset(num, 0, sizeof(num)); while (cin >> n) { bool fla

机试指南第二章-经典入门-贪心例题自解

例2.11 FatMouse's Trade 解题思路 贪心策略.每次都买剩余物品中性价比(即重量价格比)最高的物品,直到该物品被买完或者钱耗尽.若该物品已经被买完,则我们继续在剩余的物品中寻找性价比最高的物品 AC代码 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; struct Thing { double j;

计算机考研机试指南(六) ——栈

机试指南 cha 3 栈的应用 括号匹配问题 1 #include <iostream> 2 #include <stdio.h> 3 #include <algorithm> 4 #include <queue> 5 #include <stack> 6 #include <math.h> 7 #include <string> 8 #include <string.h> 9 #include <std

第二章 算法入门 合并排序

在第二章中难的算法不多,接下来我会把稍微复杂一点的算法整理一下 #include <iostream> using namespace std; void mergeSort(int *A,int left,int mid,int right) { int *L=new int[mid-left+1]; int *R=new int[right-mid+1]; int i,j; for(i=0;i<mid-left+1;i++) { L[i]=A[left+i]; } for (j=0;

Hadoop权威指南---第二章MaxTemperature例题源码

敲了一下hadoop权威指南第二章的例题,虽然基本上是照着书上敲的,但还是把它放到这方便以后查看. 代码如下: <span style="font-size:18px;"><span style="font-size:18px;">import java.io.IOException; import java.util.StringTokenizer; import org.apache.hadoop.conf.Configuration;

算法导论(Introduction to Algorithms )— 第二章 算法入门 — 2.1 插入排序

一.插入排序:INSERTION-SORT 1.适用范围: which is an efficient algorithm for sorting a small number of elements. 对于少量元素的排序,插入排序是一种高效的算法. 2.原理: Insertion sort works the way many people sort a hand of playing cards. We start with an empty left hand and the cards

第二章Python入门

第二章 Python入门 2.1.简介 Python是著名的"龟叔"(Guido van Rossum)在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言 Python的哲学就是简单优雅,尽量写容易看明白的代码,尽量写少的代码.为我们提供了非常完善的基础代码库,覆盖了网络.文件.GUI.数据库.文本等大量内容, 2.1.1.Python适合开发哪些类型的应用呢? 云计算 机器学习 科学运算 自动化运维 自动化测试 爬虫 数据分析 GUI图形化 Web开发等 2.1.2.P

Kali Linux 无线渗透测试入门指南 第二章 WLAN 和固有的不安全性

第二章 WLAN 和固有的不安全性 作者:Vivek Ramachandran, Cameron Buchanan 译者:飞龙 协议:CC BY-NC-SA 4.0 简介 建筑越高,地基就要打得越深. – 托马斯·坎佩斯 没有什么伟大的东西能在脆弱的基础上构建.在我们的语境中,固有的不安全性之上不能构建出安全. WLAN 在设计上拥有特定的不安全性,它们可被轻易利用,例如,通过封包注入,以及嗅探(能够在很远处进行).我们会在这一章利用这些缺陷. 2.1 回顾 WLAN 帧 由于这本书处理无线方面

高可用高性能负载均衡软件HAproxy详解指南-第二章(配置文件、关键字、ACL)

第二章:HAproxy配置文件详解以及HAproxy的ACL详解 对Linux有兴趣的朋友加入QQ群:476794643 在线交流 本文防盗链:http://zhang789.blog.51cto.com 上一篇:第一章:HAproxy简介及安装配置 目录 haproxy 配置文件详解 haproxy 配置文件中的关键字参考 haproxy的ACL 附:一份完整的HAproxy的配置文件 由于字体过多分开写的,全系列文章链接 第一章:HAproxy简介及安装配置 http://zhang789.