CodeSprout程式萌芽
簡單第 103 題 · 控制面板狀態
CodeSprout 官方2026/10/04 00:19
官方解答 · 置頂Java

官方解答|控制面板狀態

官方解答|控制面板狀態

解題思路

先計算 a>b 與 a<b。第一條件真時加入 2,第二條件真時加入 1,形成 0、1、2、3 四種狀態,再以傳統 switch 分別回傳 0、1、2、3。

正確性與邊界

每次呼叫都使用區域狀態,互不干擾。運算遵循 Java 整數規則,除法向 0 截斷;題目保證計算落在 int 範圍內。

複雜度

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

公開範例

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

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

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

import java.util.*;

public class Solution {

    public static int solve(int a, int b, int c) {
        boolean first = a>b;
        boolean second = a<b;
        int state = (first ? 2 : 0) + (second ? 1 : 0);
        switch (state) {
            case 0: return 0;
            case 1: return 1;
            case 2: return 2;
            default: return 3;
        }
    }
}

留言討論 0