CodeSprout程式萌芽
中等第 154 題 · 即時累計面板
CodeSprout 官方2026/10/04 00:19
官方解答 · 置頂Java

官方解答|即時累計面板

官方解答|即時累計面板

解題思路

total 初值 0。每個原元素先判斷「介於負二與三」,符合時轉為 Math.abs(x),更新規則為:符合時將轉換值加到 total;不符合時將 total 歸零。每處理完一個原元素,立即記錄 total。

正確性與邊界

不符合的元素仍產生一筆追蹤值。交錯正負只依符合值次序,略過值不切換符號;空 nums 回傳空清單。

「介於負二與三」包含兩個端點,即 -2 <= x && x <= 3;x 指當前原始數值。

複雜度

時間 O(n),額外空間 O(n) 存放追蹤序列。

公開範例

輸入 {"nums": [1]},依上述步驟得到 [1]。

下方程式可直接取代起始碼;使用 Java 11,入口為 Solution.solve。

CodeSprout 官方解答 · 題意分析、解題步驟與完整參考程式

import java.util.*;

public class Solution {

    public static List<Integer> solve(int[] nums) {
        List<Integer> result = new ArrayList<>();
        int total = 0, matches = 0;
        for (int x : nums) {
            if (x >= -2 && x <= 3) {
                total += Math.abs(x);
            } else {
                total = 0;
            }
            result.add(total);
        }
        return result;
    }
}

留言討論 0