Професионална програма
Loading...
+ Нов въпрос
supersane avatar supersane 234 Точки

Data Structures Exam

Здравейте, решавах задачата от изпита по структури от данни на Java. Въпроса ми е дали даденото време за работа става и за Java, понеже бях гледал клипове, където RoYaL решава задачи от Advanced C#, като ги submit-ва на Java някои тестове гърмяха за време, и той го увеличаваше малко от администрирането на изпита. 

Тагове:
Filkolev avatar Filkolev 4482 Точки

Дай да видим кода, може би има място за оптимизация. Малко хора ползваха джава на изпита и не е ясно дали има проблем от такова естество.

1
enevlogiev avatar enevlogiev 1168 Точки

Няма как да се увеличи времето за този изпит, защото той вече е тестван за Java. Прегледай си структурите : )

Случаите, в коитo сме увеличавали времето за някои задачи, са когато тези задачи са оригинално от C# изпит. Това се налага поради специфичната работа на judge-a с Java.

1
supersane avatar supersane 234 Точки

Явно има нужда от оптимизация. Ето това е кода. 2 теста от performance минават, другите гърмят,  и 3 гърмят за грешен отговор, на тях не мога да си открия грешката, а и тестовете ги няма качени... Всичко нередно, което забележите ще се радвам ако ми го кажете. Благодаря ви :)

edit: Структурата от хешмап за игрите я направих на treemap и 2 от тестовете за грешен отговор минаха, само последния ми остана.

edit2: Намерих тестовете, виждам, че първия за време дето гърми е от добавяне на потребител. Аз добавям в хешмап, където е константа, колко по-оптимално може да е?

0
10/11/2015 01:40:18
krach avatar krach 65 Точки

Като идея не знам дали ще дигне преформънса но все пак да не правиш излишни проверки - на ред 57-58-59 с многото ифове, защо не направиш референция от тип HashMap>> currentGameToScore = scoreboard.get(gameToScore) и после да работиш с нея вместо да гетваш отновоотновно.

HashMap>> currentGameToScore = scoreboard.get(gameToScore)
  if (currentGameToScore !=null) { //тук вместо scoreboard.containsKey(gameToScore))  проверяваме дали е null

                                                if (currentGameToScore .containsKey(userForScore)) {

                                                       currentGameToScore get(userForScore).add(score);

                                                        System.out.println("Score added");

                                                } else {.....

 

0
supersane avatar supersane 234 Точки

Разбрах ти мисълта колега и благодаря за съвета. Честно казано по принцип и аз така го правя, но тук в тази задача, мислех, че по този начин ще заделям допълнителна памет и затова не го правих, но явно съм бил в грешка. Мерси, че си отделил и време и си разгледал кода ми :)

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.