9.Most Frequent Number - java
Здравейте,
Условието на задачата е:
1. Most Frequent Number
Write a program that finds the most frequent number in a given sequence of numbers.
- Numbers will be in the range [0…65535].
- In case of multiple numbers with the same maximal frequency, print the left most of them.
Понеже задaчата е към секцията Arrays и ми се иска да я реша просто с int[]. Само че с това решение ми гърми за време. Та някой може ли да преложи нещо простичко без листове и други такива :)
https://judge.softuni.bg/Contests/255/Java-Basics-Exercises
https://pastebin.com/E4wSygWk
С моя for loop, дето съм го направила да си взема най-голямото число от positions[] и да му взема мястото в редицата се разваля второто условие на задачата и дава 90/100. Понеже в positions[] индексите са си подредени и ако дам 1,2,1234,1234,111,111, то ще ми даде 111, защото е по-малко и е по-напред в positions[], а в условието искат най-лявото, дето са ми дали, т.е 1234...ии пак трябва помощ..има ли методче или нещо там в света на жава ;dd да си взема от int[] редица позицията на дадено число :))
Ами може да пазиш текущото най - повтарящо число и да си го променяш. Аз си мислех, че трябва да е най - малкото. Не мисля че има някво такова готово методче :Д
Поздрави
Задачата се решава на 20 реда с Hashtable<Integer,Integer> за 100/100.
Итерира се по всички елементи и за всеки се проверява дали има вече такъв Ключ, ако има инкрементираме стойността, а ако няма създаваме нов със стойност 1. При всчка итерация следим дали получената стойност е по-голяма от най-голямата стойност сетвана до момента, по този начин отговаряме на втората част на условието.
Ако се пробвате с HashtМап<Integer,Integer> дава 90/100 гърми за време на един тест.
@Lyubomir_Georgiev
Подходът с HashMap разбира се е валиден, но конкретно за тази задача се предполага да се използва решение като предложненото от Vladix: масив от 65535 целочислени елемента (напр int[65535]), като всеки елемент в масива се използва като брояч за срещанията на числото с неговия индекс.
Това решение е и добра препратка към един специфичен и доста оригинален алгоритъм за сортиране - Counting Sort.