CodeSprout程式萌芽
簡單第 206 題 · 儀表數值調整
CodeSprout 官方2026/10/04 00:19
官方解答 · 置頂Java

官方解答|儀表數值調整

官方解答|儀表數值調整

解題思路

建構子先計算 Math.abs(a-b),用它初始化 value 與不可變 original。adjust 執行「以調整量取代」,read 以 value-original 得到題目要求的與初值之差。

正確性與邊界

original 是 final,調整不會覆寫初值;所有 mutable 狀態屬於單次建立的物件,沒有共享 static 欄位。

複雜度

時間 O(1),額外空間 O(1)。

公開範例

輸入 {"a": 1, "b": 2, "c": 3},依上述步驟得到 2。

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

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

import java.util.*;

public class Solution {
    private static class Meter {
        private int value;
        private final int original;
        Meter(int a, int b) { original = Math.abs(a-b); value = original; }
        void adjust(int c) { value = c; }
        int read() { return value-original; }
    }

    public static int solve(int a, int b, int c) {
        Meter meter = new Meter(a,b);
        meter.adjust(c);
        return meter.read();
    }
}

留言討論 0