唯一相异数

小白掰掰 2012-07-15 12:29:04
Description

长度为 n 的整数序列 a1, a2, ..., an 中, 有 n-1 个数是相同的, 而剩下的那个数则与之相异. 请求出这个唯一的相异数在序列中的序号.

Input

有多个测试用例. 每个测试用例的第一个数是 n(n>2), 表示整数序列的长度. 接下来是 n 个 32-bits 整数. 输入直到 n 等于 0 为止.

Output

对于每个测试用例, 在一行上输出一个整数, 表示输入的 n 长序列中的唯一相异数在序列中的序号. 注意: 输出行不能有前导空格或后缀空格.

Sample Input


5
1 2 1 1 1
0
Sample Output


2

这道题应该怎么做
...全文
296 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
测试昵称666 2012-07-15
  • 打赏
  • 举报
回复
http://www.cppleyuan.com/viewthread.php?tid=9394

这个帖子已有解答
pathuang68 2012-07-15
  • 打赏
  • 举报
回复
题目本身并不难,倒是数据输入那部分有点啰嗦。
某大一菜鸟 2012-07-15
  • 打赏
  • 举报
回复
input : n, Array[n]

bool flag = true;

for(int iter = 1; iter != n; ++iter){
if(Array[iter - 1] == Array[iter]){
if(flag){
flag = false;
}
continue;
}
else{
if(!flag)
output : Array[iter];
else
output : Array[iter + 1] == Array[iter]? Array[iter - 1] : Array[iter];
}

其实就两种情况:
不相同的数在第一、二项
不相同的数不在第一、二项
cbzjzsb123 2012-07-15
  • 打赏
  • 举报
回复
只需要判断下就可以了啊。在输入的时候,判断输入的数据是否和前面的数据相同,如果相同就继续,不相同就再次判断哪个数出现过多次。
W170532934 2012-07-15
  • 打赏
  • 举报
回复
只需要判断下就可以了啊。在输入的时候,判断输入的数据是否和前面的数据相同,如果相同就继续,不相同就再次判断哪个数出现过多次。

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧