682. Baseball Game (棒球比賽)

更新於 發佈於 閱讀時間約 1 分鐘


英文版點我中文版點我


↑看個小廣告,支持好內容↑


"C": 將前一局分數作廢
"D": 將前一局分數乘以雙倍
"+": 將前兩局分數相加


這三條規則有什麼共通點?它們都是從計分板的末端去取資料,我們至少得知道末兩項是什麼,分數才能往下更新:

// Case1: [3,1,D,+]
策略:先加上這局的分數,再去更新末兩項

3: sum=0+3=3, prev2=X, prev1=3
1: sum=3+1=4, prev2=3, prev1=1
D: sum=4+2=6, prev2=1, prev1=2 (D:前一局兩倍)
+: sum=6+3=9, prev2=2, prev1=3 (+:前兩局加總)


乍看之下可行,但萬一出現了 C 呢?末兩項也得跟著還原,可是變數已經更新,再往前的資料已無法溯回 ...


Stack

計分板的寫入和移除都是發生在資料的末端,是時候讓 Stack 登場了!

後進者先出 (LIFO, Last-In-First-Out) 是 Stack 的特徵

後進者先出 (LIFO, Last-In-First-Out) 是 Stack 的特徵

Stack 可以透過陣列的 push()pop() 來實現,照著規則建立計分板陣列,最後再將各局分數加總就可以了,再幫你複習一次迭代 XD

// acc:累積值、curr:陣列項
return arr.reduce((acc, curr)=>acc+curr, 0);



  • 本題分類標籤:ArrayStackSimulation
  • 本題正解率=75.2%

❤️ 若內容對你實用,歡迎追蹤本專題,或小額贊助支持~
⭐ 這是我的第 9 篇刷題筆記,完整解題索引看這裡 → Here

avatar-img
54會員
59內容數
我要成為 LeetCode 王!快跟我一起踏上旅程!
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
LeetCode King 的其他內容
只講得出一種做法就輸了!畫點文氏圖,幫你複習一下集合運算~
這道題你一定會解,但你知道怎麼把迴圈改寫成「迭代」嗎?這招學起來!
一串數字能夠組成等差數列嗎?有沒有不排列就能判斷的方法?
% 這個符號在 SQL 能做什麼,你都記得嗎?
班上闖來了一個陌生人!該如何快狠準揪出他?這道經典考題的解法,遠比你想的還要多種 ......
文字處理 101!把輸入內容做小寫轉換是很常見的應用唷~
只講得出一種做法就輸了!畫點文氏圖,幫你複習一下集合運算~
這道題你一定會解,但你知道怎麼把迴圈改寫成「迭代」嗎?這招學起來!
一串數字能夠組成等差數列嗎?有沒有不排列就能判斷的方法?
% 這個符號在 SQL 能做什麼,你都記得嗎?
班上闖來了一個陌生人!該如何快狠準揪出他?這道經典考題的解法,遠比你想的還要多種 ......
文字處理 101!把輸入內容做小寫轉換是很常見的應用唷~
你可能也想看
Google News 追蹤
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
原版的官方規則導入記分機制,但因為計算過於繁複,所以一般遊玩時較少採用。本變體規則旨在還原原規則的策略性,並保留平常的遊玩樂趣。 1. 配件準備 4枚不同顏色的棋子(紅、藍、黃、綠),以及一張標記0~15的場地。 2. 記分方式 一開始所有棋子都在0的位置。每一局結束時,贏家以外的所有人拿出
學習完圍棋的基礎概念後,計算三步是棋力進步很重要的一個技能。三步是指自己的第一步、對方的下一步、跟自己的下一步,總共三步棋。無論是做題或下棋時,都需要這樣練習。隨著棋力增長,計算的深度和廣度都會慢慢增加,不過我們可以從三步棋開始練習喔!你今天計算三步了嗎?
  我一直覺得棒球是一種很奇妙的運動。作為一種球類運動,棒球的得分規則特別不直覺。它既不是像籃球、足球、手球那樣是把球送進指定位置來得分;也不是像網球、排球、羽球、桌球那樣,要確保球不要在自己的一方掉落。甚至連保齡球、槌球、撞球這些不符合上述兩類典型的球類,與棒球相比,得分方式都顯得相當清晰單純。
Thumbnail
題目敘述 給定一個piles陣列,裡面對應到每堆石頭的數量。 Alice 和 Bob玩輪流取石頭的遊戲,總共有n堆石頭,每堆的石頭數量有多有少。 Alice先取,接著Bob,反覆交替,每回合輪到的人可以從當下的第一堆或者最後一堆,拿走那堆對應的石頭。 最後比誰拿到的石頭總數量比較多就獲勝。
Thumbnail
這篇文章介紹了提高勝率的第三節下注方式,透過具體賽事例子詳細解釋了何時下受讓或讓分以提高下注勝率。另外,文章也分享了判別方式和技巧,相信這對下注有幫助的朋友會產生很大幫助。
每次下單都需要全盤思考,就像下棋一樣,考慮對手的反應。確定投入金額、一次買入或分批、持有周期、集中或分散持股、支持或不支持買入和持有的理由,以及觀察持有期間的信號。
Thumbnail
題目敘述 題目會給我們一個輸入陣列tokens,裡面以逆序波蘭表達式的方式儲存各個token,請問最後計算完的值是多少? 例如: ["6", "2", "/"] 代表 6 / 2 =3 題目的原文敘述 測試範例 Example 1: Input: tokens = ["2","1"
Thumbnail
本文將帶你探索單淘汰、雙敗淘汰以及循環賽的場次計算,讓你成為賽事計算大師!計算比賽場次的數量,讓你不再傻眼!
Thumbnail
題目敘述 題目會給定我們一個比賽紀錄陣列matches,裡面以pair的方式儲存,每個pair的第一個欄位代表這場比賽的贏家ID,第二個欄位代表這場比賽的輸家ID。 題目要求我們找出所有沒有輸的玩家ID,和只輸一場的玩家ID。 計算時,只考慮有比賽紀錄的玩家。 輸出時,依照遊戲玩家的ID,從
Thumbnail
每場比賽都會結束 也許是計時器歸零 也許是九局下半三出局 或者是11分、21分、25分 再或者是傷停補時終了 總有些我們知道瞭解 或者知道不瞭解 抑或是不知道也不瞭解的規則存在 當哨聲響起 比賽就得結束 終究到了離場的時候~
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
原版的官方規則導入記分機制,但因為計算過於繁複,所以一般遊玩時較少採用。本變體規則旨在還原原規則的策略性,並保留平常的遊玩樂趣。 1. 配件準備 4枚不同顏色的棋子(紅、藍、黃、綠),以及一張標記0~15的場地。 2. 記分方式 一開始所有棋子都在0的位置。每一局結束時,贏家以外的所有人拿出
學習完圍棋的基礎概念後,計算三步是棋力進步很重要的一個技能。三步是指自己的第一步、對方的下一步、跟自己的下一步,總共三步棋。無論是做題或下棋時,都需要這樣練習。隨著棋力增長,計算的深度和廣度都會慢慢增加,不過我們可以從三步棋開始練習喔!你今天計算三步了嗎?
  我一直覺得棒球是一種很奇妙的運動。作為一種球類運動,棒球的得分規則特別不直覺。它既不是像籃球、足球、手球那樣是把球送進指定位置來得分;也不是像網球、排球、羽球、桌球那樣,要確保球不要在自己的一方掉落。甚至連保齡球、槌球、撞球這些不符合上述兩類典型的球類,與棒球相比,得分方式都顯得相當清晰單純。
Thumbnail
題目敘述 給定一個piles陣列,裡面對應到每堆石頭的數量。 Alice 和 Bob玩輪流取石頭的遊戲,總共有n堆石頭,每堆的石頭數量有多有少。 Alice先取,接著Bob,反覆交替,每回合輪到的人可以從當下的第一堆或者最後一堆,拿走那堆對應的石頭。 最後比誰拿到的石頭總數量比較多就獲勝。
Thumbnail
這篇文章介紹了提高勝率的第三節下注方式,透過具體賽事例子詳細解釋了何時下受讓或讓分以提高下注勝率。另外,文章也分享了判別方式和技巧,相信這對下注有幫助的朋友會產生很大幫助。
每次下單都需要全盤思考,就像下棋一樣,考慮對手的反應。確定投入金額、一次買入或分批、持有周期、集中或分散持股、支持或不支持買入和持有的理由,以及觀察持有期間的信號。
Thumbnail
題目敘述 題目會給我們一個輸入陣列tokens,裡面以逆序波蘭表達式的方式儲存各個token,請問最後計算完的值是多少? 例如: ["6", "2", "/"] 代表 6 / 2 =3 題目的原文敘述 測試範例 Example 1: Input: tokens = ["2","1"
Thumbnail
本文將帶你探索單淘汰、雙敗淘汰以及循環賽的場次計算,讓你成為賽事計算大師!計算比賽場次的數量,讓你不再傻眼!
Thumbnail
題目敘述 題目會給定我們一個比賽紀錄陣列matches,裡面以pair的方式儲存,每個pair的第一個欄位代表這場比賽的贏家ID,第二個欄位代表這場比賽的輸家ID。 題目要求我們找出所有沒有輸的玩家ID,和只輸一場的玩家ID。 計算時,只考慮有比賽紀錄的玩家。 輸出時,依照遊戲玩家的ID,從
Thumbnail
每場比賽都會結束 也許是計時器歸零 也許是九局下半三出局 或者是11分、21分、25分 再或者是傷停補時終了 總有些我們知道瞭解 或者知道不瞭解 抑或是不知道也不瞭解的規則存在 當哨聲響起 比賽就得結束 終究到了離場的時候~