iT邦幫忙

2022 iThome 鐵人賽

DAY 21
0

「唉,晚上來看Stack和Queue的題目吧。」我看了看剩下的tags,做出了決定。

「學姊為啥嘆氣啊。」學妹端起冒著煙的拉麵,嚥下一口熱湯後露出幸福的表情。

「因為Stack和Queue不太彈性啊,要拿到資料得排隊一個個等。」超麻煩的。

「咳?排隊?」學妹被麵條嗆到。「咳咳,學姊你說清楚點。」

「Stack就想成紙箱裡的書,能馬上拿出來的就是最後放進去的那本;Queue就把紙箱另一端打開,掉出來的是最先放進去的那本。」

學妹可能設想了一下書本掉出來的畫面,表情有點扭曲。「哦,除非是畢業後那些不會再看的課本,書一般我不會放在紙箱,會放在書架。」

「對呀,陣列和書架比較相似,想拿第幾本就拿第幾本。」我同意。但是書架空間太有限,所以我有一堆書都在紙箱,找書不方便不說,還得定時捕殺衣魚。

「學姊再不吃,麵會爛掉。」

「啊,妳不早點提醒我!」我趕緊拿起筷子撈麵,嗯,這個拉麵湯頭還滿濃郁的。

享用完溫暖的食物之後,有點昏昏欲睡。

我讓學妹先睡,腦海裡想著昨天看到的題目1700. Number of Students Unable to Eat Lunch,要求算出吃不到三明治的學生數量。

一開始會想要跑三明治迴圈包學生迴圈,但是仔細想想好像不需要,因為吃不到三明治的學生數量也等於被剩下的三明治數量。

所以就把學生按照1和0分類,開頭的三明治沒人吃的時候就能得到結果。

class Solution {
    fun countStudents(students: IntArray, sandwiches: IntArray): Int {
        var count1 = students.sum()
        var count0 = students.size - count1
        for (it in sandwiches) {
            if ((it == 1 && count1 == 0) || (it == 0 && count0 == 0)) {
                break
            }
            if (it == 1) count1-- else count0--
        }
        return count0 + count1
    }
}

上一篇
Day20: 前人種樹,今人算樹
下一篇
Day22: ArrayList和LinkedList的簡單比較
系列文
不解題就不能離開的房間31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言