VT04 - Tìm kiếm trong mảng

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, Python, Ruby, Rust, Scratch, Swift

Cho mảng số nguyên ~A~ có ~n~ phần tử, hãy tìm kiếm xem trong mảng có xuất hiện phần tử ~x~ hay không?

Input

  • Dòng 1 là số nguyên dương ~n~ (số lượng phần tử của mảngm ~n \le 10^6~) và số nguyên ~x~ (~|x| \le 10^9~) là giá trị cần tìm
  • Dòng tiếp theo là ~n~ số nguyên là các phần tử của mảng (~|a_{ij}| \le 10^9~)

Output

  • Nếu ~x~ xuất hiện ít nhất 1 lần trong mảng, in ra YES
  • Nếu ~x~ không có trong mảng, in ra NO

Sample

Input #1
5 3
1 2 3 4 5
Output #1
YES

Bình luận

Hãy đọc nội quy trước khi bình luận.



  • 0
    gtmailong  đã bình luận lúc 11, Tháng 4, 2024, 16:29

    c++

    #include <iostream>
    
    using namespace std;
    
    bool ok(int a[], int n, int x) {
      for (int i =0; i< n; i++) {
        if (x == a[i]) return 1;
      }
      return 0;
    }
    
    int main () {
      int n,x;
      cin >> n >>x;
      int a[n];
      for (int i =0; i< n; i++) cin >> a[i];
      if (ok(a, n, x)) cout << "YES";
      else cout << "NO";
      return 0;
    }
    

  • -1
    sairon2k8  đã bình luận lúc 7, Tháng 3, 2024, 8:57

    dùng kiểu gắn cờ thôi mn

    include <bits/stdc++.h>

    using namespace std;
    int main(){
    int n,x,flag=0;cin>>n>>x;
    int a[n];
    for (int i=0;i<n;i++){
    cin>>a[i];
    }
    for (int j=0;j<n;j++){
    if (a[j]==x){
    cout<<"YES";
    flag=1;
    }
    }
    if (flag==0) cout<<"NO";
    return 0;
    }


  • 1
    DKN13  đã bình luận lúc 11, Tháng 1, 2024, 12:58

    Tim kiem trong mang

    n,x = [int(x) for x in input().split()]

    A = list(map(int, input().split()))

    if A.count(x)!=0:

    print("YES")
    

    else:

    print("NO")
    

  • -4
    Khanhll123  đã bình luận lúc 9, Tháng 12, 2023, 9:30

    Bài này phải dùng chặt nhị phân


    • -2
      thh  đã bình luận lúc 21, Tháng 1, 2024, 4:11

      Bạn có thể tham khảo 1 code ko dùng duyệt trâu nè

      include <bits/stdc++.h>

      define int long long

      using namespace std;

      int n, nf, nb; bool found;

      void solve() {

      cin >> n >> nf;
      found = false;
      for(int i = 1;i <= n; ++i)
      {
          cin >> nb;
          if(nb == nf)
              found = true;
      }
      if(found)
          cout << "YES";
      else
          cout << "NO";
      

      } main() {

      ios_base::sync_with_stdio(false);
      cin.tie(nullptr);cout.tie(nullptr);
      
      solve();
      

      }

      Ở đây khi mình nhập vô thì mình so sánh luôn giúp giảm thời gian ko phải for lại hay duyệt nhị phân đó AC 4 câu nha bạn


    • -1
      thh  đã bình luận lúc 21, Tháng 1, 2024, 3:58

      Bài này dùng gì cx được vì n cùng lắm cx chỉ có 10^6 nên có thể vẫn ac đc nhưng nên tìm 1 số cách nhanh hơn chứ duyệt trâu thì lâu lắm

      Vector thì chậm hơn mảng thường khoảng 2 - 3 lần đấy bạn

      Bài này thì xài chặt nhị phân có thể là nhanh nhất rồi vì ~log_2(10^6)~ khoảng 20 thôi nên nếu n = ~10^9*10^3~ thì cx có gần 40 và bài này cũng sort được chỉ mất ~log_2(n)~ thôi nên cách này ok nha


      • 0
        sang41dz  đã bình luận lúc 3, Tháng 2, 2024, 14:09

        sort chi nlog(n) duoc thoi chu log(2,n) kieu chi vay ban


    • -2
      DKN13  đã bình luận lúc 11, Tháng 1, 2024, 12:58

      Chặt chi nếu dùng C++ thì có thể xài multiset, hoặc xài duyệt mảng theo cách bth, vector hàm count....


  • 0
    hiplemon  đã bình luận lúc 19, Tháng 11, 2023, 8:51

    ai co dap an dang len di


    • 0
      5kym4rk  đã bình luận lúc 19, Tháng 11, 2023, 15:05

      Bạn có thể tham khảo của mình. Mình code bằng ngôn ngữ C.

      include <stdio.h>

      int main() { int n, x, i; scanf("%d", &n); scanf("%d", &x); if (n > 1000000 || x > 1000000000 || x < -1000000000) { return 1; } int a[n]; for (i = 0; i < n; i++) { scanf("%d", &a[i]); } int count = 0; for (i = 0; i < n; i++) { if (a[i] == x) { count++; } } if (count >= 1) { printf("YES"); } else { printf("NO"); } return 0; }


  • -6
    hiplemon  đã bình luận lúc 19, Tháng 11, 2023, 8:49

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • 0
    letienlinh2005  đã bình luận lúc 4, Tháng 11, 2023, 16:15

    k qua nhỉ


  • -3
    letienlinh2005  đã bình luận lúc 4, Tháng 11, 2023, 16:15

    include <iostream>

    using namespace std; int main(){ int m; cin >> m; int a[m]; int n; cin >> n; for(int i=0; i<m; i++){ cin >> a[i]; } bool found = false; for(int i=0; i<n; i++){ if(n == a[i]){ found = true; break; } } if(found){ cout << "YES"; } else{ cout << "NO"; } return 0; }