FOJ-1001-Duplicate Pair
2016-03-21 16:54
411 查看
题目:Duplicate Pair
大意:
有多组测试数据,输入整数n,接着输入n个整数(integers),这些数字几乎都只出现一次,但其中有一个数出现了两次,请输出这个数。
题解:
大数据问题,普通的两个for暴力解决很明显会T,也不能用C++的cin和cout(费时太多)。那么这个问题就转换成如何省时间的一题。
代码:
思路分析:
既然你输入n个数,我就开个n大小的字符数组,数组中所有元素置0,(为省时用memset,所以这里定义的是字符数组,调用
大意:
有多组测试数据,输入整数n,接着输入n个整数(integers),这些数字几乎都只出现一次,但其中有一个数出现了两次,请输出这个数。
题解:
大数据问题,普通的两个for暴力解决很明显会T,也不能用C++的cin和cout(费时太多)。那么这个问题就转换成如何省时间的一题。
代码:
#include <stdio.h> #include <string.h> #define N 1000010 char a ; //定义字符数组,用到memset,节省时间 int main(void) { int n; int i; int j; while(scanf("%d", &n) != EOF) { memset(a, 0, n); for(i = 0; i < n; i++) { scanf("%d", &j); if(a[j] == 0) a[j] = 1; else printf("%d\n", j); } } return 0; }
思路分析:
既然你输入n个数,我就开个n大小的字符数组,数组中所有元素置0,(为省时用memset,所以这里定义的是字符数组,调用
#include<string.h>)你输入的每一个数比如说j对应的字符数组的成员是
a[j],
a[j]代表的就是你的状态,输入j以后如果之前没有和j相同的数(也就是
a[j]==0),将其值置为1,代表这个数出现了;如果这个数之前出现了(
a[j]==1),就得到我们要的数了。
相关文章推荐
- IntelliJ IDEA 工具grails实现多个文件压缩下载
- Pair RDD基本操作
- main函数第3个参数envp装的是什么
- 217. Contains Duplicate
- inotifywait
- IntelliJ IDEA 工具grails框架打war包
- baiduAPI 免费调用天气预报
- kill()、raise()、alarm()、pause()、
- RAID级别简介
- 1.插入排序—直接插入排序(Straight Insertion Sort)
- Rails 实现多对多自连接
- Dell R420 RAID建立以及系统安装
- 使用AIDE做Linux高级入侵检测文件监控
- error LNK2019: 无法解析的外部符号 _main,该符号在函数___tmainCRTStartup 中被引用
- Check/Repair Geometry
- [leetcode] 217. Contains Duplicate
- 【AI】蒙特卡洛搜索树
- [LeetCode][数论]Contains Duplicate
- AIDL的使用
- [置顶] 人工智能实战——人工神经网络(C库iOS交叉编译)