码迷,mamicode.com
首页 > 其他好文 > 详细

YTUOJ-Faultfinding

时间:2015-04-08 09:13:26      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:c++   博客   数据   算法   编程   

题目描述

Do you remember the game in which we find difference among several similar pictures? Now we change it into digital version. There are N digits, same or different. Please find how many different digits there are among them and output the number.

输入

Each group of the first line is N (1<=N<=10000). The second line consists N integers.

输出

The number of different digits.

样例输入

2
1 1
3 
1 2 3

样例输出

1
3

提示

代码如下:

#include <iostream>

using namespace std;

int main()
{
    int N;
    while (cin>>N)
    {
        int a[10000],n=1,i,j;
        for (i=0;i<N;i++)
            cin>>a[i];
        for (i=1;i<N;i++)
        {
            for (j=i-1;j>=0;j--)
            {
                if (a[j]==a[i])
                    break;
                if (j==0)
                    n++;
            }
        }
        cout<<n<<endl;
    }
    return 0;
}


运行结果:

技术分享

 

 

学习心得:

精英赛第二题,想的时间不长,但是实现起来还是有些困难的,本来的思路是以第一个正向去比较,如果碰到不同的就加1,再依次以后面的数去比较其之后的数,如果相同就减一,但是结果好像就是不对,修改了很久还是没通过,想睡觉的时候灵感来了,既然正向不行就反向去比较如果从第二个开始往前面比较,如果这个数之前出现过,就直接跳出循环,如果到第一位结束后还没有碰到那么就n++。。。有时候的确得从多个方向去思考问题啊。

YTUOJ-Faultfinding

标签:c++   博客   数据   算法   编程   

原文地址:http://blog.csdn.net/liuchang54/article/details/44935575

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!