10 条题解

  • 10
    @ 2023-7-17 14:23:04
    #include <iostream>
    using namespace std;
    int flag[5005];
    int a[20005];
    int main()
    {
        int num = 1;
        int n;
        cin >> n;
        for (int i = 1; i <= n; i++)
        {
            int x;
            cin >> x;
            if (flag[x] == 0)
            {
                flag[x] = 1;
                a[num] = x;
                num++;
            }
        }
        for (int i = 1; i <= num - 1; i++)
        {
            cout << a[i] << " ";
        }
        return 0;
    }
    

    解析:

    1.获取元素,判断数组里是否有该元素,没有则将 flag 数组里这个数字对应的位子的 0 改为 1,代表已存。

    2.至于 num 就是变相的将此数字输入数组 a 。

    3.遍历输出。

    4.懂的都懂👍 [doge]。

    • 3
      @ 2023-7-18 15:33:41
      int flag[20005],n,x;
      int main()
      {
          cin>>n;
          for (int i=1;i<=n;i++)
          {
              cin>>x;
              if (flag[x]==0)
              {
                  flag[x]=1;
                  cout<<x<<' ';
              }
          }
          return 0;
      }//秦老师的最短代码
      

      不要直接复制(没有头文件)😄

      👍 👍 👍 👍 👍 👍 👍(疯狂暗示)

      • 3
        @ 2023-7-14 12:30:50

        解析

        在保存数据的时候,每输入一个数据,都判断这个数字是否之前出现过,如果没有出现过,就保存这个数据。

        题解

        #include <iostream>
        using namespace std;
        int flag[5005];
        int a[20005];
        int num = 1;
        int main()
        {
            int n;
            cin >> n;
            for (int i = 1; i <= n; i++)
            {
                int x;
                cin >> x;
                if (flag[x] == 0)
                {
                    flag[x] = 1;
                    a[num] = x;
                    num++;
                }
            }
            for (int i = 1; i <= num - 1; i++)
                cout << a[i] << " ";
            return 0;
        }
        
        
        • 0
          @ 2024-4-19 18:23:25
          #include<iostream>
          using namespace std;
          int main()
          {
              int n;
              cin >> n;
              int a[n];
              for(int i=0;i<n;i++)//循环输入
              {
                  cin >> a[i];
              }
              for(int i=0;i<n;i++)
              {
                  bool flag=true;//默认这个数并没有重复
                  for(int j=0;j<i;j++)
                  {
                      if (a[j]==a[i])//如果重复,改变flag值
                      {
                          flag=false;
                      }
                  }
                  if (flag)//如果这个数不重复则输出
                  {
                      cout << a[i] << " ";
                  }
              }
              return 0;
          }
          
          • -1
            @ 2023-7-19 13:29:42
            #include <iostream>
            using namespace std;
            int a[20005], n, pop;
            int main()
            {
                cin >> n;
                for (int i = 1; i <= n; i++)
                {
                    cin >> pop;
                    if (a[pop] != 1)
                    {
                        a[pop] = 1;
                        cout << pop << ' ';
                    }
                }
                return 0;
            }
            
            • -1
              @ 2023-7-14 22:42:38
              include <iostream>
              using namespace std;
              int flag[20005];
              int a[20005];
              int num = 1;
              int f=0;
              int main()
              {
                  int n;
                  cin >> n;
                  for (int i = 1; i <= n; i++)
                  {
                      f=0;
                      int x;
                      cin >> x;
                      flag[num]=x;
                      for (int i=1;i<num;i++)
                      {
                          if (flag[i]==x)
                          {
                              f=1;
                              break;
                          }
                      }
                  if (f==0)
                      a[num]=x;
                  num++;
                  }
                  cout<<a[1]<<" ";
                  for (int i = 2; i <= num - 1; i++)
                      if (a[i]!=0)
                          cout << a[i] << " ";
                  return 0;
              }
              
              • -1
                @ 2023-7-14 16:32:42
                #include <iostream>
                using namespace std;
                int flag[5005];
                int a[20005];
                int num = 1;
                int main()
                {
                    int n;
                    cin >> n;
                    for (int i = 1; i <= n; i++)
                    {
                        int x;
                        cin >> x;
                        if (flag[x] == 0)
                        {
                            flag[x] = 1;
                            a[num] = x;
                            num++;
                        }
                    }
                    for (int j = 1; j <= num - 1; j++)
                        cout << a[j] << " ";
                    return 0;
                }//这个上课也写过啊(bushi
                
                
                
                • -1
                  @ 2023-7-14 15:08:42

                  我的思路


                  数据去重的话,就是去除重复,重复可以单独用一个数组保存,这里为一维int数组


                  程序流程: 输入 =》 判断值是否存在 =》 输出

                  #include<bits/stdc++.h>
                  using namespace std;
                  int bak[20001]; // 定义bak数组,用于存储输入值
                  int main()
                  {
                  int n;
                  cin >> n;
                  int a[n];
                  for(int i = 0;i < n;i++)cin >> a[i]; // 输入a数组
                  for(int i = 0;i < n;i++){
                  if(!bak[a[i]]){
                  cout << a[i] << " ";
                  bak[a[i]] = 1;
                  } // 如果bak不存在a[i]输出a[i]
                  }return 0;
                  

                  }

                  
                  
                  • -1
                    @ 2023-7-14 14:18:32
                    #include <iostream>
                    using namespace std;
                    int s[20005],d[20005];//初始化
                    int main()
                    {
                        int a,su=0;
                        cin>>a;
                        for (int i=1;i<=a;i++)
                        {
                            cin>>s[i];//读入
                        }
                        for (int i=1;i<=a;i++)
                        {
                            int flag=0;
                            for (int q=1;q<=a;q++)//挨个判断:其中是否有相同的数
                            {
                                if (s[i]==d[q])
                                {
                                    flag=1;//判断成功
                                    break;
                                }
                            }
                            if (flag==0)//若判断失败,则将其加入列表d
                            {
                                d[su+1]=s[i];//su负责记录成功加入列表d的数数量
                                su+=1;//25行的[su+1]是为了和最后一个循环中的i=1相对照
                            }
                        }
                        for (int i=1;i<=su;i++)
                        {
                            cout<<d[i]<<" ";
                        }
                        return 0;
                    }//笨笨的办法
                    
                  • -2
                    @ 2023-7-15 11:25:07

                    1、定义数组flag和a。 2、定义sum,n变量。 3、for循环定义并输入x。 4、判断flag[x]是否等于0,是就将flag[x]赋值为1,a[num] 这个数赋值为x,num自加 (注意:赋值符是=,而判断符是==)。 5、for循环输出a[i]这个数。 看到这就点“亿”个👍吧!!!😄 😄

                    #include <iostream>
                    using namespace std;
                    int flag[5005];
                    int a[20005];
                    int num = 1;
                    int main()
                    {
                        int n;
                        cin >> n;
                        for (int i = 1; i <= n; i++)
                        {
                            int x;
                            cin >> x;
                            if (flag[x] == 0)
                            {
                                flag[x] = 1;
                                a[num] = x;
                                num++;
                            }        
                        }
                        for (int i = 1; i <= num - 1; i++)
                            cout << a[i] << " ";
                       return 0; 
                    }
                    
                    • 1

                    信息

                    ID
                    293
                    时间
                    1000ms
                    内存
                    256MiB
                    难度
                    4
                    标签
                    递交数
                    1301
                    已通过
                    649
                    上传者