Помогите написать код программы
Дан двухмерный массив размера 20x20. Найти номер последнего по порядку столбца, в котором содержится наибольшее количество различных символов.
У самого, есть идеи?
Код:
#include <iostream>
#include <cstdlib>
using namespace std;
int main(void){
const size_t N = 20;
int mat[N][N];
for(size_t i = 0; i < N; ++i){
for(size_t j = 0; j < N; ++j){
mat[i][j] = rand() % 9;
cout << mat[i][j] << ' ';
}
cout << endl;
}
int col = 0, cnt = 0, tcnt = 0;
/* очень медленный алгоритм почти O(n^3), за то без
дополнительной памяти! */
for(size_t c = 0; c < N; ++c){
cnt = 0;
for(size_t r = 0; r < N; ++r){
for(size_t i = r + 1; i < N; ++i){
if(mat[i][c] != mat[r][c])
++cnt;
}
}
if(cnt >= tcnt){
tcnt = cnt;
col = c;
}
}
cout << "max unique index-col: "
<< col << endl;
return 0;
}
#include <cstdlib>
using namespace std;
int main(void){
const size_t N = 20;
int mat[N][N];
for(size_t i = 0; i < N; ++i){
for(size_t j = 0; j < N; ++j){
mat[i][j] = rand() % 9;
cout << mat[i][j] << ' ';
}
cout << endl;
}
int col = 0, cnt = 0, tcnt = 0;
/* очень медленный алгоритм почти O(n^3), за то без
дополнительной памяти! */
for(size_t c = 0; c < N; ++c){
cnt = 0;
for(size_t r = 0; r < N; ++r){
for(size_t i = r + 1; i < N; ++i){
if(mat[i][c] != mat[r][c])
++cnt;
}
}
if(cnt >= tcnt){
tcnt = cnt;
col = c;
}
}
cout << "max unique index-col: "
<< col << endl;
return 0;
}