zoukankan      html  css  js  c++  java
  • 九度oj 题目1173:查找

    题目描述:

    输入数组长度 n
    输入数组      a[1...n]
    输入查找个数m
    输入查找数字b[1...m]
     
    输出 YES or NO  查找有则YES 否则NO 。

    输入:

    输入有多组数据。
    每组输入n,然后输入n个整数,再输入m,然后再输入m个整数(1<=m<=n<=100)。

    输出:

    如果在n个数组中输出YES否则输出NO。

    样例输入:
    5
    1 5 2 4 3
    3
    2 5 6
    样例输出:
    YES
    YES
    NO

    采用了哈希的办法,玩嘛
     1 #include <cstdio>
     2 #include <cstdlib>
     3 #include <cstring>
     4 #include <string>
     5 #include <cmath>
     6 #define MAX 103
     7 
     8 struct Number
     9 {
    10     int key;
    11     bool isVaild;
    12 };
    13 Number map[MAX];
    14 
    15 int main(int argc, char const *argv[])
    16 {
    17     int n, m;
    18     while(scanf("%d",&n) != EOF) {
    19         int temp;
    20         for(int i = 0; i < MAX; i++) {
    21             map[i].isVaild = false;
    22         }
    23         for(int i = 0; i < n; i++) {
    24             scanf("%d",&temp);
    25             int num = temp%100;
    26             while(map[num].isVaild == true) {
    27                 num++;
    28                 if(num == 100) {
    29                     num = 0;
    30                 }
    31             }
    32             map[num].key = temp;
    33             map[num].isVaild = true;
    34         }
    35         scanf("%d",&m);
    36         for(int i = 0; i < m; i++) {
    37             scanf("%d",&temp);
    38             int num = temp%100;
    39             if(map[num].isVaild == false) {
    40                 puts("NO");
    41             }
    42             else {
    43                 bool flag = true;
    44                 while(flag) {
    45                     if(map[num].key == temp) {
    46                         puts("YES");
    47                         flag = false;
    48                         break;
    49                     }
    50                     num++;
    51                     if(num == 100) {
    52                         num = 0;
    53                     }
    54                 }
    55                 if(flag == true) {
    56                     puts("NO");
    57                 }
    58             }
    59         }
    60     }
    61     return 0;
    62 }

    当然,普通的办法好像速度也不慢

     1 #include <cstdio>
     2 #include <cstdlib>
     3 #include <cstring>
     4 #include <string>
     5 #include <cmath>
     6 #define MAX 101
     7 
     8 int num[MAX];
     9 
    10 int main(int argc, char const *argv[])
    11 {
    12     int n, m;
    13     while(scanf("%d",&n) != EOF) {
    14         
    15         for(int i = 0; i < n; i++) {
    16             scanf("%d",&num[i]);
    17         }
    18         scanf("%d",&m);
    19         
    20         for(int i = 0; i < m; i++) {
    21             int temp;
    22             scanf("%d",&temp);
    23             bool flag = false;
    24             for(int j = 0; j < n; j++) {
    25                 if(temp == num[j]) {
    26                     puts("YES");
    27                     flag = true;
    28                     break;
    29                 }
    30             }
    31             if(flag == false) {
    32                 puts("NO");
    33             }
    34         }
    35     }
    36     return 0;
    37 }


  • 相关阅读:
    并发量,tps,qps
    MYSQL安装和配置
    python 生成随机数的几种方法
    python 判断是字母的多种方法
    python实战,
    linux工作常用命令
    apache http server安装
    .py与.pyc文件区别
    上传本地文件到linux
    ms
  • 原文地址:https://www.cnblogs.com/jasonJie/p/5691389.html
Copyright © 2011-2022 走看看