Tìm kiếm phần tử xuất hiện cuối cùng

Xem dạng PDF

Gửi bài giải

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

Dạng bài

Cho một mảng A nguyên gồm N phần tử, hãy tìm chỉ số của phần tử xuất hiện cuối cùng trong mảng, ví dụ mảng 1, 3, 4, 5, 5, 5, 6, 7. Nếu tìm số 5 thì số 5 xuất hiện cuối cùng sẽ có chỉ số 5, chỉ số này được in ra. Nếu không tìm thấy thì in ra -1


Ràng buộc: ~0 < N \leq 10^6~, ~-10^6 < A[i] \leq 10^6~


Input 01:
8 5
1 3 4 5 5 5 6 7
Output 01:
5
Input 02:
7 -3
-3 -3 -1 4 5 6 7
Output 02:
1
Input 03:
6 10
1 3 4 5 6 7
Output 03:
-1

Bình luận

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



  • 0
    PThuster2006  đã bình luận lúc 22, Tháng 12, 2024, 4:13

    include <stdio.h>

    int main(){ int n, mark; scanf("%d %d", &n, &mark); int i, a[n]; for(i = 0; i < n; i++){ scanf("%d", &a[i]); } int check = 0; for(i = n-1; i >= 0; i--){ if(a[i] == mark){ printf("%d", i); check = 1; break; } }

    if(check == 0) printf("-1");
    return 0;
    

    } em làm như này ko biết sai chỗ nào mà ko đc full testcase ạ


  • 0
    dangnguyenle  đã bình luận lúc 27, Tháng 11, 2024, 3:11

    include <bits/stdc++.h>

    define N 2000001

    using namespace std; int n,x, a[N+1]; int main() { cin >> n>>x; bool check= false; for( int i=0;i < n;i++) cin>> a[i]; for( int i=n-1;i >=0; i--){ if( a[i]==x){ cout << i; check=true; break; } } if(!check) cout <<-1; return 0; } sai ở mô mà ko được full test nhỉ ae