九度OJ―题目1351:数组中只出现一次的数字(vector与数组的区别)

2015-01-24 05:42:32 · 作者: · 浏览: 3
题目1351:数组中只出现一次的数字

时间限制:1 秒

内存限制:32 兆

特殊判题:否

提交:2597

解决:766

题目描述:
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
输入:
每个测试案例包括两行: 第一行包含一个整数n,表示数组大小。2<=n <= 10^6。 第二行包含n个整数,表示数组元素,元素均为int。
输出:
对应每个测试案例,输出数组中只出现一次的两个数。输出的数字从小到大的顺序。
样例输入:
8
2 4 3 6 3 2 5 5
样例输出:
4 6


数组解题

#include 
            
             
#include 
             
               int a[1000000]; int b[2]; int compare(const void *p,const void *q) { return *(int *)p - *(int *)q; } int main() { int n,i,j; while(scanf("%d",&n)!=EOF) { j=0; for(i=0;i
              
               
结果超时未能AC

\


<??http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+08N2ZWN0b3K94sziPC9wPgo8cD48L3A+CjxwcmUgY2xhc3M9"brush:java;">#include #include #include using namespace std; int main() { int n,i; while(scanf("%d", &n) != EOF){ vector data; data.resize(n);//保证[0,n]范围内数据有效,以外的数据无效 for(i = 0; i < n; ++i){ scanf("%d", &data[i]); } sort(data.begin(), data.end()); vector result; for(i = 0; i < data.size() - 1;){ if(data[i] == data[i + 1]){ i += 2; } else{ result.push_back(data[i]); ++i; if(result.size() == 2){ break; } } } if(result.size() == 1){ result.push_back(data.back());//把末尾元素加进去 } printf("%d %d\n", result[0], result[1]); } return 0; }


结果AC

\



vector和数组的区别如下:

1:array 定义的时候必须定义数组的元素个数;而vector 不需要;且只能包含整型字面值常量,枚举常量或者用常量表达式初始化的整型const对象,非const变量以及需要到运行阶段才知道其值的const变量都不能用来定义数组的维度.

2:array 定义后的空间是固定的了,不能改变;而vector 要灵活得多,可再加或减.

3:vector有一系列的函数操作,非常方便使用.和vector不同,数组不提供 push、back或者其他的操作在数组中添加新元素,数组一经定义就不允许添加新元素;
   若需要则要重新分配新的内存空间,再将数组的元素赋值到新的内存空间。

4. 数组和vector不同,一个数组不能用另一个数组初始化,也不能将一个数组赋值给另一个数组;?


<script type="text/java script">
<script type="text/java script">BAIDU_CLB_fillSlot("771048");
点击复制链接 与好友分享! 回本站首页
<script> function copyToClipBoard(){ var clipBoardContent=document.title + '\r\n' + document.location; clipBoardContent+='\r\n'; window.clipboardData.setData("Text",clipBoardContent); alert("恭喜您!复制成功"); }
<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"24"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];
您对本文章有什么意见或着疑问吗?请到 论坛讨论您的关注和建议是我们前行的参考和动力??
上一篇: 九度OJ; 题目1139:最大子矩阵
下一篇: 最后一页
相关文章
C/C++中多维数组的指针作为函数参数传
C/C++中数组和指针类型的关系的入门教
<script type="text/java script">BAIDU_CLB_fillSlot("182716");
<script type="text/java script">BAIDU_CLB_fillSlot("517916");
图文推荐
<iframe src="http://www.2cto.com/uapi.php?tid=363170&catid=339&title=vsW2yE9KoarM4sS/MTM1MaO6yv3X6dbQ1ruz9s/W0ru0zrXEyv3X1ih2ZWN0b3LT68r91 m1xMf4sfAp&forward=http://www.2cto.com/kf/201412/363170.html" width="100%" height="100%" id="comment_iframe" name="comment_iframe" frameborder="0" scrolling="no">
<script type="text/java script">BAIDU_CLB_fillSlot("771057");