Hdoj-1563-Find your present!
来源:互联网 发布:移动宽带端口扩容申请 编辑:程序博客网 时间:2024/06/05 05:25
题目:Find your present!
本题有多种做法。我刚刚开始所选用的方法略为暴力,定义一个数组,直接在输入编号的过程中,把其对应数组下标的数组元素++。
解法1:(Runtime Error)
#include<stdio.h>#include<string.h>int a[1005];int main(){ int n; while(scanf("%d",&n)!=EOF) { if(n==0)break; int b; memset(a,0,sizeof(a)); while(n--) { scanf("%d",&b); a[b]++; } int i; for(i=1;i<1000;i++) { if(a[i]%2!=0) { printf("%d\n",i); break; } } } return 0;}
开的数组太小,而编号又可能是大整数(但不超过int范围)。得到这样的结果也是早有预料。
看了下Discuss,发现高手们的解法非常值得学习和体会。贴两种方法:
解法2:(accept)
#include<iostream>#include<algorithm>using namespace std;int main(){ int n; while(cin>>n&&n){ int a[2000],i; for(i=0;i<n;i++) cin>>a[i]; sort(a,a+n); for(i=1;i<n;i++) if(a[i]!=a[i-1]&&a[i]!=a[i+1]){ cout<<a[i]<<endl; break; } }}
做法是简单的sort排序,然后遍历一遍数组元素,找到既与前面的元素不同,又与后面元素不同的数组元素,就是我们要的答案了。
Discuss也有人用这样的算法,但是还是对两个端点进行了判断。用上面这个条件判断即可。
解法3:(accept)
在输入的时候判断最大的那个数,输出即可。
解法4:(accept)
#include <iostream>#include <cstring>using namespace std;int main(){ int n,j,a[201],b[201]; while((cin>>n)&&n) { memset(b,0,sizeof(b)); for(int i=0;i<n;i++) { cin>>a[i]; for(j=0;j<i;j++) if(a[j]==a[i]) { b[j]++; break; } if(j==i) b[i]++; } for(int i=0;i<n;i++) if(b[i]==1) { cout<<a[i]<<endl; break; } } return 0;}
直接暴力即可。
0 0
- HDOJ 1563 Find your present!
- Hdoj-1563-Find your present!
- hdoj-1563-Find your present!
- HDOJ 1563 Find your present!
- hdoj.1563 Find your present! 20140825
- HDOJ-1563-Find your present! 解题报告
- hdoj 1563 Find your present!&&2095 Find your present(2) 异或运算
- HDOJ(HDU) 1563 Find your present!(异或)
- HDOJ 2095 find your present (2)
- hdoj 2095 find your present (2)
- hdoj.2095 find your present (2) 20140804
- hdoj 2095 find your present (2)
- HDOJ 2095 find your present (2)
- HDOJ find your present (2) 2095
- HDOJ 2095 find your present (2)
- HDOJ 2095-find your present (2)
- HDOJ 2095 find your present (2)
- HDOJ 2095 find your present (2)
- 唯品会——java开发实习生机试
- java导出Excel通用方法
- 常见jquery函数集合总结
- cocos2d-x 3.0菜单的使用
- WebSphere安装、系统部署、连接池
- Hdoj-1563-Find your present!
- Android数据库 SQLite数据库
- POJ-1149-PIGS(最大流)
- CodeIgniter3 定制数据库缓存,增加自动过期功能
- 《Spring设计思想》AOP设计基本原理
- Lambda 表达式的示例-来源(MSDN)
- js 跨域访问实例
- 常用SQL查询语句
- Activity区分平板和手机加载布局文件