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
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; } }
} em làm như này ko biết sai chỗ nào mà ko đc full testcase ạ
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