查找练习 hash——出现过的数字
来源:互联网 发布:java技术支持岗位职责 编辑:程序博客网 时间:2024/04/28 10:34
Problem Description有一个数据字典,里面存有n个数字(n<=100000),小明现在接到一个任务,这项任务看起来非常简单——给定m个数字,分别查询这m个数字是否出现在字典之中;但是考虑到数据量的问题,小明找到了善于编程的你,希望你可以帮他解决这个问题。 Input 输入数据只有一组! 第一行包含两个整数n m,分别代表字典中数字的个数和要查询的数字的个数。接着n行代表字典中的n个数字。最后m表示要查询的数字。Output 如果某个数字存在,则输出YES,否则输出NO Example Input5 3123455410Example OutputYESYESNOHint
这个方法应该是哈希查找。
百度百科对哈希查找有这样的定义:哈希查找是通过计算数据元素的存储地址进行查找的一种方法。
这个方法是把输入的数据作为一个数组的地址,如果这个地址有了就把这个地址对应的数设置为“1”
在以后查找这个数组是否有这个数字的时候,直接统计这个数字对应地址的数组的值是否为“1”即可。
#include<stdio.h> #include<stdlib.h> int s[100000]; int main() { int i, n, m, a; scanf("%d%d",&n,&m); for(i=0;i<n;i++) { scanf("%d",&a); s[a]=1;//关键点 } for(i=0;i<m;i++) { scanf("%d",&a); if(s[a]==1) printf("YES\n"); else printf("NO\n"); } return 0; }
阅读全文
0 0
- 查找练习 hash——出现过的数字
- 查找练习 hash——出现过的数字
- 查找练习 hash——出现过的数字
- SDUT 查找练习 hash——出现过的数字
- 查找练习 hash——出现过的数字
- 查找练习 hash——出现过的数字
- 查找练习 hash——出现过的数字
- 查找练习 hash——出现过的数字
- sdut2123查找练习 hash——出现过的数字
- 查找练习 hash——出现过的数字
- 查找练习 hash——出现过的数字
- sdut查找练习 hash——出现过的数字
- 查找练习 hash——出现过的数字
- 查找练习 hash——出现过的数字
- 查找练习 hash——出现过的数字
- 查找练习 hash——出现过的数字
- 查找练习 hash——出现过的数字
- 查找练习 hash——出现过的数字
- Java实现指定数据表导出生成Excel
- 实验
- Product of Array Except Self问题及解法
- QT 信号和槽看似connect不上
- Pull解析实例
- 查找练习 hash——出现过的数字
- 1.在UBUNTU下搭建OPTEE环境
- 深度学习优化函数详解
- java 23种设计模式 深入理解
- 小程序文档整理之 -- 条件渲染
- angular-route基本使用Demo
- UVA 572 油田(BFS)
- Maven+Spring+Spring MVC+MyBatis+MySQL,搭建SSM框架环境
- CURL模拟post,get提交数据-实际应用