【hdoj】哈希表题hdoj1425
hdoj1425
#include<cstdio>
#include<cstring>
using namespace std;
const int offset = ;
bool hash[offset+]; int main()
{
int m, n;
while(scanf("%d%d", &m, &n)!=EOF)
{
memset(hash, false, sizeof(hash));
for(int i=; i<m; i++){
int num;
scanf("%d", &num);
hash[offset+num] = true;
}
for(int i=offset+; i>=&&n>; i--)
{
if(hash[i])
{
if(n==)
printf("%d\n", i-offset);
else
printf("%d ", i-offset);
n--;
}
}
}
return ;
}
这道题数据是有范围的。我们可以将数据和存储位置做一个对应。
做法是:当数字num存在时,将hash数组下标为num的值设为true。
这样存储完毕后,就排序完成了。
拓展:如果原题中“第二行包含n个各不相同”这一条件去掉,现在允许相同,那么该怎么编写?
#include<cstdio>
#include<cstring>
using namespace std;
const int offset = ;
int hash[offset+]; int main()
{
int m, n;
while(scanf("%d%d", &m, &n)!=EOF)
{
memset(hash, , sizeof(hash));
for(int i=; i<m; i++){
int num;
scanf("%d", &num);
hash[offset+num]++;
}
for(int i=offset+; i>=&&n>; i--)
{
while(hash[i]>&&n>)
{
if(n==){
printf("%d\n", i-offset);
n = ;
}
else{
printf("%d ", i-offset);
n--;
hash[i]--;
}
}
}
}
return ;
}
【hdoj】哈希表题hdoj1425的更多相关文章
- noip模拟赛 好元素 哈希表的第一题
这是一道关于 题2好元素 2s [问题描述] 小A一直认为,如果在一个由N个整数组成的数列{An}中,存在以下情况: Am+An+Ap = Ai (1 <= m, n, p < i < ...
- LeetCode刷题总结-哈希表篇
本文总结在LeetCode上有关哈希表的算法题,推荐刷题总数为12题.具体考察的知识点如下图: 1.数学问题 题号:149. 直线上最多的点数,难度困难 题号:554. 砖墙,难度中等(最大最小边界问 ...
- lettcode 上的几道哈希表与链表组合的数据结构题
目录 LRU缓存 LFU缓存 全O(1)的数据结构 lettcode 上的几道哈希表与链表组合的数据结构题 下面这几道题都要求在O(1)时间内完成每种操作. LRU缓存 LRU是Least Recen ...
- C#LeetCode刷题-哈希表
哈希表篇 # 题名 刷题 通过率 难度 1 两数之和 C#LeetCode刷题之#1-两数之和(Two Sum) 42.8% 简单 3 无重复字符的最长子串 24.2% 中等 18 四数之和 ...
- Java 哈希表(google 公司的上机题)
1 哈希表(散列)-Google 上机题 1) 看一个实际需求,google 公司的一个上机题: 2) 有一个公司,当有新的员工来报道时,要求将该员工的信息加入(id,性别,年龄,住址..),当输入该 ...
- 牛客网Java刷题知识点之数组、链表、哈希表、 红黑二叉树
不多说,直接上干货! 首先来说一个非常形象的例子,来说明下数组和链表. 上体育课的时候,老师说:你们站一队,每个人记住自己是第几个,我喊到几,那个人就举手,这就是数组. 老师说,你们每个人记住自己前面 ...
- 贪心+枚举/哈希表 HDOJ Trouble
题目传送门 题意:5个集合,每个集合最多200个数字,问是否每个集合挑一个数加起来和为0. 分析:显然n^5的程序果断超时,甚至n^3logn的二分也过不了.想n^3的方法,既然判断有没有,那么可以将 ...
- leetcode 刷题(数组篇)1题 两数之和(哈希表)
题目描述 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标. 你可以假设每种输入只会对应一个答案.但是,数组中同一个元 ...
- 【哈希表】CodeVs1230元素查找
一.写在前面 哈希表(Hash Table),又称散列表,是一种可以快速处理插入和查询操作的数据结构.哈希表体现着函数映射的思想,它将数据与其存储位置通过某种函数联系起来,其在查询时的高效性也体现在这 ...
随机推荐
- 前端内网穿透,localtunnel你值得拥有!
一个前端在调试本地页面时,总会有些稀奇古怪的需求,比如产品立刻要看你的页面效果,而此时有没有上线环境折腾给他看,那此时通过内网穿透的方式,实时把你的项目生成一个在线链接丢给他,让他去找那一像素的bug ...
- LinkedList为什么增删快、查询慢
List家族中共两个常用的对象ArrayList和LinkedList,具有以下基本特征. ArrayList:长于随机访问元素,中间插入和移除元素比较慢,在插入时,必须创建空间并将它的所有引用向前移 ...
- [Unity2d系列教程] 006.Unity如何根据图片自动生成Animator
Unity制作2D产品的时候,我们在制作动画的时候,要不断的生成Animation,Animator等等资源,如果动画一多的话,就变得麻烦.由于Unity是支持插件开发的,我们可以添加一个Editor ...
- Chisel3 - model - Hardware Model
https://mp.weixin.qq.com/s/x6j7LZg7i7i_KcNEA8YCQw Chisel作为领域专用语言(DSL),用于构建硬件模型.待硬件模型建立后,再基于模型进行仿真. ...
- 面试题:我们重写一个对象的时候为什么要同时重写hashcode()和equals()方法
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 在创建的类不重写hashCode()和equals() 方法时,默认使用 java 提供的 java.l ...
- 金融SaaS平台之构思篇
背景介绍 从事过金融服务行业的同学们都知道,业务系统是非常之多的,核心的就有估值.交易.TA.资讯系统,其他类似产品生命周期系统.投后分析系统等待,而且各个业务系统的逻辑非常之复杂,所以一般金融机构都 ...
- Java 第十一届 蓝桥杯 省模拟赛 梅花桩
小明每天都要练功,练功中的重要一项是梅花桩. 小明练功的梅花桩排列成 n 行 m 列,相邻两行的距离为 1,相邻两列的距离也为 1. 小明站在第 1 行第 1 列上,他要走到第 n 行第 m 列上.小 ...
- Java实现 LeetCode 696 计数二进制子串(暴力)
696. 计数二进制子串 给定一个字符串 s,计算具有相同数量0和1的非空(连续)子字符串的数量,并且这些子字符串中的所有0和所有1都是组合在一起的. 重复出现的子串要计算它们出现的次数. 示例 1 ...
- Java实现 LeetCode 472 连接词
472. 连接词 给定一个不含重复单词的列表,编写一个程序,返回给定单词列表中所有的连接词. 连接词的定义为:一个字符串完全是由至少两个给定数组中的单词组成的. 示例: 输入: ["cat& ...
- Java实现 LeetCode 378 有序矩阵中第K小的元素
378. 有序矩阵中第K小的元素 给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第k小的元素. 请注意,它是排序后的第k小元素,而不是第k个元素. 示例: matrix = [ ...