ETH官方钱包

前往
大廳
主題

LeetCode - 2660. Determine the Winner of a Bowling Game 解題心得

Not In My Back Yard | 2024-07-09 12:00:11 | 巴幣 0 | 人氣 71

題目連結:


題目意譯:
你被給定兩個索引值從 0 開始數的整數陣列 player1 和 player2,代表著在一局保齡球中玩家 1 和玩家 2 分別擊倒的球瓶數。

一局保齡球總共有 n 回合,而每一回合的球瓶數恰好是 10。

假設某一位玩家在第 i 回合時擊倒 xi 個球瓶。則該玩家在第 i 回合的分數會是:
    如果該玩家在第 i - 1 或是 i - 2 回合中有擊倒 10 個球瓶,則分數為 2xi;
    反之,則為 xi。

玩家的總分即為該玩家 n 回合下來的分數總和。

回傳
    1,代表著玩家 1 得到比玩家 2 還要更高的分數;
    2,代表著玩家 2 得到比玩家 1 還要更高的分數;
    0,代表著平手。

限制:
n == player1.length == player2.length
1 ≦ n ≦ 1000
0 ≦ player1[i], player2[i] ≦ 10



範例測資:
範例 1:
輸入: player1 = [5,10,3,2], player2 = [6,5,7,3]
輸出: 1
解釋:
玩家 1 的總分為 5 + 10 + 2 × 3 + 2 × 2 = 25。
玩家 2 的總分為 6 + 5 + 7 + 3 = 21。

範例 2:
輸入: player1 = [3,5,7,6], player2 = [8,10,10,2]
輸出: 2
解釋:
玩家 1 的總分為 3 + 5 + 7 + 6 = 21。
玩家 2 的總分為 8 + 10 + 2 × 10 + 2 × 2 = 42。

範例 3:
輸入: player1 = [2,3], player2 = [4,1]
輸出: 0
解釋:
玩家 1 的總分為 2 + 3 = 5。
玩家 2 的總分為 4 + 1 = 5。

範例 4:
輸入: player1 = [1,1,1,10,10,10,10], player2 = [10,10,10,10,1,1,1]
輸出: 2
解釋:
玩家 1 的總分為 1 + 1 + 1 + 10 + 2 × 10 + 2 × 10 + 2 × 10 = 73。
玩家 2 的總分為 10 + 2 × 10 + 2 × 10 + 2 × 10 + 2 × 1 + 2 × 1 + 1 = 75。


解題思維:
模擬即可。注意第 0 和第 1 回合沒有第「-2」和第「-1」回合。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

相關創作

更多創作