hi there ! anh/chị có thể gợi ý giúp em vấn đề này không ạ ?
=> cho dãy A 7;7;4;5;7;9;2;5
sẽ cho ra dãy B 7;4;5;9;2
( số xuất hiện nhiều lần chỉ tính 1 )
Cách làm của em như này :
dùng for lớn cho chạy từ đầu Dãy A là số 7, cho đến số 5. ví dụ đang ở vị trí số 2 thì thì cho vòng for nhỏ chạy từ đầu dãy A đến số 9, nếu 2 xuất hiện trong khoảng đó thì continue
, còn nếu không thì thêm 2 vào B. do B không đếm được nên dùng ArrayList .
ý tưởng e như vậy nhưng code không ra kết quả đúng ạ, mong được giúp đỡ
em tìm được đoạn code C này ai đó dịch ra java giúp em với
#include <iostream>
using namespace std;
const int MAX = 1e6;
int cnt[MAX];
int main(){
int n;
do{
cout << "\nNhap n = ";
cin >> n;
}while(n < 1);
int a[n];
for(int i = 0; i < n;i++){
do{
cout << "\nNhap a[" << i << "] = ";
cin >> a[i];
}while(a[i] < 0);
}
for(int i = 0;i < MAX; i++) cnt[i] = 0;
for(int i = 0; i < n;i++){
cnt[a[i]]++;
}
for(int i = 0;i < MAX; i++){
if(cnt[i] > 0){
cout << "Gia tri " << i << " xuat hien " << cnt[i] << " lan!\n";
}
}
}