快轉到主要內容
  1. LeetCode/

LeetCode 3522: Calculate Score After Performing Instructions

·1 分鐘· ·
LeetCode Weekly Medium
Wei Yi Chung
作者
Wei Yi Chung
Working at the contributing of open source, distributed systems, and data engineering.
目錄
LeetCode Weekly Contest 446 - 本文屬於一個選集。
§ 1: 本文

基本資料
#

難易度: medium 第一次嘗試: 2025-04-20

  • 總花費時間:11:48.00

解題思路
#

採用暴力法:直接遍歷 instructions 陣列,根據指令進行對應動作(addjump)。
step 的位置超出邊界(小於 0 或大於等於陣列長度)時,立即停止迴圈並回傳當前的累積分數。
同時,需要用 seen 集合記錄已經拜訪過的位置,避免無限迴圈的發生。

解法
#

class Solution:
    def calculateScore(self, instructions: List[str], values: List[int]) -> int:
        score = 0
        step = 0
        seen = set()
        n = len(instructions)
        
        while True:
            seen.add(step)
            if instructions[step] == "add":
                score += values[step]
                step += 1
                if step in seen:
                    break
            
            elif instructions[step] == "jump":
                step += values[step]
                if step in seen:
                    break
                    
            if step < 0 or step >= n:
                break
                
        return score

收穫
#

NA

遇到的問題
#

NA

LeetCode Weekly Contest 446 - 本文屬於一個選集。
§ 1: 本文

相關文章

LeetCode 3523: Make Array Non-decreasing
·1 分鐘
LeetCode Weekly Medium
LeetCode 解題紀錄
LeetCode 3517: Smallest Palindromic Rearrangement I
·1 分鐘
LeetCode Weekly Medium
LeetCode 解題紀錄
LeetCode 2381: Shifting Letters II
·1 分鐘
LeetCode Medium Difference Array
LeetCode 解題紀錄
LeetCode 781: Rabbits in Forest
·1 分鐘
LeetCode Daily Medium
LeetCode 解題紀錄
LeetCode 560: Subarray Sum Equals K
·1 分鐘
LeetCode Daily Medium
LeetCode 解題紀錄
LeetCode 1922: Count Good Numbers
·1 分鐘
LeetCode Daily Medium
LeetCode 解題紀錄