總結(jié)---2023年餓了么秋招工程算法崗筆試
1. 小紅送外賣
算法思路:
- 定義節(jié)點與邊的鄰接表:利用數(shù)組定義節(jié)點,每個節(jié)點都是一個ArrayList(類型為邊類,邊類的成員變量是節(jié)點和距離)
- 定義dist數(shù)組保存節(jié)點到源節(jié)點的最短路徑
- 利用Dijsktra算法結(jié)合優(yōu)先隊列從起點開始遍歷
- 計算累計和
難點:
- Dijsktra算法流程:三個關(guān)鍵數(shù)組(每個節(jié)點是否找到、最短距離、父節(jié)點)。
總結(jié):
- 第一次完整的寫需要導(dǎo)包的java代碼還是有點不熟悉,其實只需要import java.util.*就行了。
- next()、nextInt()基于分隔符,參考csdn
- 在next完后記得nextLine()吃掉換行符
2. 小紅等外賣
算法思路:
- 對于每一種情況,讀取時間后將其轉(zhuǎn)換為分鐘進行比較,這里利用到了(m + DAY_MINUTE) % DAY_MIMUTE的思想處理同一天和次日兩種情況
難點:
- 用取模(環(huán)形)處理跨午夜
3. 小紅的字符串構(gòu)造
算法思想:
- 利用布爾數(shù)組記錄串中出現(xiàn)的字符,并將其保存到ArrayList中。構(gòu)建新的數(shù)組next,對于ArrayList中的每一個字符(不重復(fù)的),數(shù)組下標(biāo)對應(yīng)的字符為集合中的下一個元素,這樣能保證不重復(fù)。隨后掃描串并構(gòu)建即可。
暑期筆試總結(jié) 文章被收錄于專欄
記錄一些公司的暑期筆試感悟