原创 201803-1 跳一跳

除了記分需要一個變量外,還需一個變量記錄上次得分。如果當前跳到了中心點,那麼需要知道上次得分來計算當前的分。即如果上次得分<2,那麼當前的分爲2,否則當前的分爲上次得分+2 奉上java滿分代碼 import java.util.Sca

原创 201709-2 公共鑰匙盒

我覺得是第二題裏面最難的,然後這次認證的第三題也是我覺得最難的😂,不過好像第四題和第五題可以騙點分。 用TreeMap來存儲所有的時間點及該時間點要還和要借的鑰匙,其中不論是借的還是還的鑰匙也用TreeSet來存。這些都是爲了達到排序的效

原创 201803-3 URL映射

很幸運地參加了這次考試,因爲這個第三題對我這麼一個愛正則的人來說,太順手了。沒錯,拿到滿分全靠運氣🌚 <int> 對應的正則是 [0-9]+ <str> 對應的正則是[a-zA-Z0-9\\-_\\.]+ <path> 對應的正則是[a-

原创 201709-1 打醬油

首先看錢有幾個50,先買5送2的 然後看剩下的夠幾個30,再買3送1 最後看剩下的夠幾個10,買單瓶的 奉上java滿分代碼 import java.util.Scanner; public class Main{ publi

原创 201712-2 遊戲

判斷報的數是否要被淘汰使用number % k == 0 || String.valueOf(number).endsWith(String.valueOf(k)),確定要被淘汰的小朋友加入remove數組中,一輪結束後再一起淘汰,不然會

原创 201803-2 碰撞的小球

封裝小球對象,屬性包括位置,方向(向右爲1,向左爲-1)。移動時pos += dir 就可以了;轉換方向就是 dir *= -1。記得在小球到達繩子邊界和與其他小球位置相同時要轉向。 奉上java滿分代碼 import java.uti

原创 201712-1 最小差值

import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner scanner = ne

原创 201703-2 學生排隊

使用list.add(index, Object)來實現對指定對象的移動,移動前記得從list中remove該對象即可 奉上java滿分代碼 import java.util.ArrayList; import java.util.Li

原创 201703-1 分蛋糕

使用一個變量weight來記錄當前小朋友已經拿到的蛋糕的重量,如果weight超過k,那麼weight置0,計數器加一 注意在結束遍歷時,如果weight大於0,那計數器還應再加一 奉上java滿分代碼 import java.util

原创 201612-2 工資計算

這道題可以通過題目的條件反推出計算工資的方程式。 我覺得如果我參加考試的話,在考場上應該沒有辦法冷靜下來推算方程式誒。所以我使用暴力破解。 因爲找到答案後就會跳出循環,這樣也不會超時。 奉上java滿分代碼 import java.ut

原创 201612-1 中間數

時間複雜度是n方,外循環遍歷數組,內循環統計數目 奉上java滿分代碼 import java.util.*; public class Main{ public static void main(String[] args)

原创 201612-3 權限查詢

前面幾行的權限信息我直接跳過沒有用,因爲題目已經保證了輸入的合法性。(其實這麼做的時候,我還是有點心慌的,因爲有一次參賽的時候,使用了自以爲高明的方法結果只拿了10分🌚) 使用HashMap<UserName, HashMap<Privi

原创 201609-3 爐石傳說

其實這個題並不難,使用面向對象,按照題目思路一步一步走就可以拿到滿分。 爲了使代碼更加簡潔,我使用一個HahsMap來存儲先手玩家和後手玩家,鍵分別是1和-1,這樣每次end的時候把當前玩家的鍵乘以-1就可以獲得另一個玩家。召喚隨從和攻擊

原创 201609-2 火車購票

座位是否可坐的情況用一個二維數組布爾存儲,記爲seats,行列固定爲20*5。輸出座位編號的時候需要轉化下,如seats[i][j]的號碼應該是5*i + j + 1。座位找到後要及時break,提高時間效率 奉上java滿分代碼 im

原创 201609-1 最大波動

下標從1開始遍歷數組,使用一個max變量來記錄最大的差值。差值使用Math.abs來計算 奉上java滿分代碼 import java.util.*; public class Main{ public static void