1. 程式人生 > >解決浙大PAT用JAVA返回非零以及執行超時異常

解決浙大PAT用JAVA返回非零以及執行超時異常

恕我先直言,陳老師是時候更新下pat的測試java的判定系統了吧。。。簡直是對java選手的褻瀆啊……

恐怕很多人遇到了這個情況,第三方牛客網執行正常,到了浙大pat官網用同樣的java程式碼怎麼就返回非零了呢?請各位往下看!


一、對於返回非零,官方微信寫的是:c語言沒有return 0,java語言執行出現異常。

解決方法:

  1. 首先確保沒有加package,類名稱為Main。
  2. 為了執行效率,請使用
    BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));

    因為pat系統對scanner支援不友好且執行時間長。
  3. 請在使用完bufferedreader之後立刻使用close();方法關閉,否則可能會發生記憶體洩漏(關閉的越早越好)。
  4. 重要】請不要隨便import沒有用到的包,親測若是匯入了java.util.Scanner可是你沒有用到scanner,就會返回非零。

二、對於執行超時

  1. 一般對於100ms時間限制的題目,基本ac不了,哪怕優化得再好。因為很多乙級題目執行時長(該死的jvm啟動)在100ms上下,運氣好ac的多,運氣差全超時!
  2. 200ms以上的題目,若是執行超時,那就請不要用暴力破解。
  3. 還是超時的話,建議換語言。官方說明:選擇合適的語言也是一種技巧,所以不給你java放寬時間限制!