|
|
|
Интересная задачка про массивы
|
|||
|---|---|---|---|
|
#18+
Задача. Есть массив целых чисел. Необходимо вывести числа из этого массива в порядке частоты их встречаемости в массиве. К примеру массив 12,2,5,6,6,243,5,6 Вывод будет 6 - 3 раза 5 - 2 раза 12,2,243 - 1 раз. Ну и конечно - никакого использования коллекций. Только массивы. Задача то вроде простая, наиболее примитивно - берем двумерный массив и т.д. Но может есть какое то красивое решение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 03:14 |
|
||
|
Интересная задачка про массивы
|
|||
|---|---|---|---|
|
#18+
Задача слишком простая. Решений масса. А искать оптимальный/красивый код просто неинтересно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 05:25 |
|
||
|
Интересная задачка про массивы
|
|||
|---|---|---|---|
|
#18+
982183, напишите одно. Если простая задача значит в 10-15 минут уложитесь. Только не блоксхему а рабочий код. Если лень писать, неохота думать - значит задача не заинтересовала. А вы подумайте минуты 3 - вдруг заинтересует. . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 06:16 |
|
||
|
Интересная задачка про массивы
|
|||
|---|---|---|---|
|
#18+
pgm300, Решение при помощи linkedhadhmap: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. С уважением, Валентин ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 08:47 |
|
||
|
Интересная задачка про массивы
|
|||
|---|---|---|---|
|
#18+
Все формальности соблюдены: красиво и коллекции не используются. На все ушло 3 минуты :) Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. order by cnt desc ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 09:12 |
|
||
|
Интересная задачка про массивы
|
|||
|---|---|---|---|
|
#18+
Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 09:16 |
|
||
|
Интересная задачка про массивы
|
|||
|---|---|---|---|
|
#18+
myauchaВсе формальности соблюдены: красиво и коллекции не используются. На все ушло 3 минуты :) Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. order by cnt desc только, наверное, надо не таблицу создавать, а... забыл как там называется, что-то типа временной таблицы, которая в бд потом не сохранится :) И, кстати, не хорошо, что id повторяются) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 09:17 |
|
||
|
Интересная задачка про массивы
|
|||
|---|---|---|---|
|
#18+
Ну вот, пока писал, уже ответили. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 09:18 |
|
||
|
Интересная задачка про массивы
|
|||
|---|---|---|---|
|
#18+
Nixicтолько, наверное, надо не таблицу создавать, а... забыл как там называется, что-то типа временной таблицы, которая в бд потом не сохранится :) И, кстати, не хорошо, что id повторяются) Лучше?! :) Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 09:43 |
|
||
|
Интересная задачка про массивы
|
|||
|---|---|---|---|
|
#18+
Только массивы. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 09:59 |
|
||
|
Интересная задачка про массивы
|
|||
|---|---|---|---|
|
#18+
pgm300Задача то вроде простая, наиболее примитивно - берем двумерный массив и т.д. Но может есть какое то красивое решение? Чем тебе двумерный массив то поможет? Хочешь красиво жить - пожалуйста. :) Есть у тебя массив на n элементов. 1.Отводишь значит массив размерностью 2^n+1 c объектами (значение, количество). 2.Берешь число из первого массива. Смотришь по середине массива, пусто - добавляешь новый объект со значением из первого массива и количеством 1. Не пусто проверяешь значение. Равно - счетчик увеличиваем, больше идем направо, меньше налево (повторяем с серединой половины массива те же действия). 3.Пройдя весь исходный массив делаем тоже самое с полученным массивом (еще один 2^n+1 пробегаем по непустым (начиная с середины нефиг 2^n сложность то плодить), но в этот раз сравниваем по количеству повторений и больше налево). 4.Пробегаем по полученному массиву и печатаем значения с повторениями. P.S. На самом деле все гораздо проще:) Arrays.sort() - после чего подсчет количества тривиален. После чего еще один sort (не забыть сделать правильный Comparator). Можно нести преподу. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 10:27 |
|
||
|
Интересная задачка про массивы
|
|||
|---|---|---|---|
|
#18+
авторкрасивое решение Уйти в бизнес)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 10:32 |
|
||
|
Интересная задачка про массивы
|
|||
|---|---|---|---|
|
#18+
Valentin Kolesnikov, хэшмап то конечно. Но тогда на самом деле слишком просто. Но с помощью только массивов. Так же интересней) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 10:35 |
|
||
|
Интересная задачка про массивы
|
|||
|---|---|---|---|
|
#18+
myaucha, отлично) Только тут же форум по Java) ну и какое то не универсальное у вас решение. Если массив 10К элементов - кода будет многовато ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 10:37 |
|
||
|
Интересная задачка про массивы
|
|||
|---|---|---|---|
|
#18+
982183, я не написал в условии но подразумевается что используем только Java. И только массивы. Никаких коллекций, не дай бог фреймворков и даже Arrays.sort(). Вы спросите - "дык нахрена ж так тр@хаться если есть уже готовые средства???" Так то да , в том то и дело - спортивный интерес. Задачка то простая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 10:40 |
|
||
|
Интересная задачка про массивы
|
|||
|---|---|---|---|
|
#18+
Сергей Арсеньев, Arrays.sort() то понятно. Но его использовать нельзя) Только ваш код. А то можно и хэшмап залепить и все просто. А насчет использования 2 в степени n...Ээээмм а если (как это бывает) исходный массив из 1000 элементов? Или больше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 10:46 |
|
||
|
Интересная задачка про массивы
|
|||
|---|---|---|---|
|
#18+
Zenia, респект! Первый кто выложил попытку решения. Но что то не работает. На исходной выборке результат правильный. Но если добавить в массив новые данные то все ломается. Попробуйте к примеру просто входящий массив удвоить или утроить (просто добавьте те же числа). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 11:04 |
|
||
|
Интересная задачка про массивы
|
|||
|---|---|---|---|
|
#18+
pgm300Сергей Арсеньев, Arrays.sort() то понятно. Но его использовать нельзя) Только ваш код. Обыграть местных в эту игру нельзя потому, что всегда оказывается правило, про которое Вы раньше не знали. Чем простите Arrays.sort отличается от операций больше,меньше,равно? Он точно так же вшит в платформу. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 11:05 |
|
||
|
Интересная задачка про массивы
|
|||
|---|---|---|---|
|
#18+
Сергей Арсеньев, хорошо) Возражение принимается. Arrays.sort() используйте на здоровье. Но знаете что? Он вам тут мало поможет. Скажем, получили вы массив с элементами и массив с их встречаемостями. Каждому элементу в одном массиве соответствует элемент в другом. Что у вас будет после того как вы отсортируете один из массивов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 11:22 |
|
||
|
Интересная задачка про массивы
|
|||
|---|---|---|---|
|
#18+
Ну, в общем, как-то так Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 11:31 |
|
||
|
Интересная задачка про массивы
|
|||
|---|---|---|---|
|
#18+
select un, count(un) as cnt from unnest(array[12,2,5,6,6,243,5,6]) un group by 1 order by 1, 2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 11:35 |
|
||
|
Интересная задачка про массивы
|
|||
|---|---|---|---|
|
#18+
Код: plsql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 11:36 |
|
||
|
Интересная задачка про массивы
|
|||
|---|---|---|---|
|
#18+
Zenia, работает) Ну вот скажите - задача на самом деле посложнее чем кажется на первый взгляд. Ну и в 15 минут тут так просто не уложишься ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 11:43 |
|
||
|
Интересная задачка про массивы
|
|||
|---|---|---|---|
|
#18+
lleming, на java можете? Без использования коллекций ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 11:45 |
|
||
|
Интересная задачка про массивы
|
|||
|---|---|---|---|
|
#18+
Мне самому задача тем и показалась интересной, что формулировка простая и кажется что можно решить за 5-10 минут. Легко посчитать во втором массиве частоту встречаемости для каждого элемента. Легко вывести ответ сортируя не по частоте встречаемости а по элементам (достаточно просто предварительно отсортировать исходный массив перед подсчетом количества встречаемостей). Но отсортировать по частоте уже сложнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 11:51 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39305035&tid=2123220]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
73ms |
get tp. blocked users: |
1ms |
| others: | 201ms |
| total: | 362ms |

| 0 / 0 |
