Questão 30: menosFreq
Voltar
Defina uma função int menosFreq (int v[], int N)
que recebe um vetor v
com N
elementos ordenado por ordem crescente e retorna o menos frequente dos elementos do vetor. Se houver mais do que um elemento nessas condições deve retornar o que começa por aparecer no índice mais baixo.
Exemplo
> int v[6] = {1,1,2,2,2,3};
> menosFreq(v, 6)
(int) 3
Resolução
int menosFreq (int v[], int N) {
int i, freq = 1, minFreq = N, ans = v[0];
for(i = 1; i < N; i++) {
if(v[i] == v[i - 1]) freq++;
else {
if(freq < minFreq) {
minFreq = freq;
ans = v[i - 1];
}
freq = 1;
}
}
if(freq < minFreq) {
minFreq = freq;
ans = v[i - 1];
}
return ans;
}