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ử đã sắp xếp tăng dần, 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