2012-04-23 74 views
2

我是一名Java程序員。即使我的算法是正確的,我也會多次發現,使用codechef獲得的時間限制超出了我提交的內容。在編程競賽中提交Java解決方案時,應該採用哪些技術?解決Java中的Codechef問題

+1

簡單的代碼優化,如使變量最終也可以工作 – 2012-04-23 12:25:48

+0

比較你的解決方案和「最好」的解決方案。這可能是你有傾向於使用hashmaps到期或者類似的數組。 (如果這意味着「超出時間限制」。)幸運的是,這並不意味着您對算法的洞察力很差,所以祝您好運。 – 2012-04-23 12:33:10

+0

我有同樣的問題,codechef不是測試算法技能的最佳平臺。 – nikhil 2012-05-22 14:11:12

回答

4

在CodeChef上,Java中的所有提交的時間限制都是其本地語言(例如,c/C++/pascal)的兩倍。然而,有一點未提及的是,當Java解決方案經常發生內存消耗高時,Judge開始行爲非常緩慢。 CodeChef判斷運行所有Java程序的內存設置爲64 MB。您應該嘗試儘量少使用內存,並嘗試使用-Xms = 64 MB在本地運行相同的解決方案。

增加的時間限制也可能是由於當程序的內存使用率接近允許的最大值(在這種情況下爲64 MB)時引起的,則JVM調用非常密集地使用CPU的垃圾回收器,從而延遲程序執行。