Всем привет.
Задача - найти число в массиве, которое повторяется макс. кол-во раз. Если несколько чисел повторяются с одинаковой последовательностью - вывести их в порядке возрастания.
Ввод в консоль
5
2 3 3 3 2
Вывод
3
Число 3 повторяется макс. кол. раз.
Использую такой код:
import java.util.Scanner;
public class main_class {
static int num;
static int[] features;
static int temp = 0;
static int result;
static int[] resTable;
public static void main (String [] args){
Scanner sc = new Scanner(System.in);
num = sc.nextInt();
features = new int[num];
for(int i = 0; i<num; i++){
features[i]=sc.nextInt();
}
int c=0;
for(int i = 0; i<features.length;i++){
int freq = checkFreq(features[i]);
if(freq>temp){
temp=freq;
result = features[i];
}
}
System.out.println(result);
}
public static int checkFreq (int res){
int c =0;
for(int i =0;i<features.length;i++){
if(res==features[i]){
c++;
}
}
return c;
}
}
Все хорошо работает в случае если в массиве только одно число повторяется большее кол-во раз. Как можно сделать вывод в случае если ввод будет такой:
5
2 2 1 1 3
Мы должны получить
1 2
(в порядке возрастания)
Спасибо за ответы и советы! P.s нельзя использовать НИЧЕГО кроме Сканнера
Свежие комментарии