16
Фев
2017

Найти число, повторяющееся в массиве макс. кол. раз

Всем привет.

Задача - найти число в массиве, которое повторяется макс. кол-во раз. Если несколько чисел повторяются с одинаковой последовательностью - вывести их в порядке возрастания.

Ввод в консоль

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 нельзя использовать НИЧЕГО кроме Сканнера

Источник: https://ru.stackoverflow.com/questions/628867/%D0%9D%D0%B0%D0%B9%D1%82%D0%B8-%D1%87%D0%B8%D1%81%D0%BB%D0%BE-%D0%BF%D0%BE%D0%B2%D1%82%D0%BE%D1%80%D1%8F%D1%8E%D1%89%D0%B5%D0%B5%D1%81%D1%8F-%D0%B2-%D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2%D0%B5-%D0%BC%D0%B0%D0%BA%D1%81-%D0%BA%D0%BE%D0%BB-%D1%80%D0%B0%D0%B7

Share

Тебе может это понравится...