官方解答 · 置頂Java
官方解答|控制面板狀態
官方解答|控制面板狀態
解題思路
先計算 a<b 與 a+b>c。第一條件真時加入 2,第二條件真時加入 1,形成 0、1、2、3 四種狀態,再以傳統 switch 分別回傳 0、1、2、3。
正確性與邊界
每次呼叫都使用區域狀態,互不干擾。運算遵循 Java 整數規則,除法向 0 截斷;題目保證計算落在 int 範圍內。
複雜度
時間 O(1),額外空間 O(1)。
公開範例
輸入 {"a": 1, "b": 2, "c": 3},依上述步驟得到 2。
下方程式可直接取代起始碼;使用 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>c;
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
登入 後就能留言,一起討論不同的寫法。