官方解答 · 置頂Java
官方解答|觀測集合最低值
官方解答|觀測集合最低值
解題思路
先將 left、right 分別放入 Set 去重,再做對稱差集。只保留偶數,最後計算最小值。
正確性與邊界
每個原集合值只參與一次,負奇數用 % 2 != 0 判斷。空集合統計為 0。
複雜度
平均集合處理時間 O(n+m),額外空間 O(n+m)。
公開範例
輸入 {"left": [1], "right": []},依上述步驟得到 0。
下方程式可直接取代起始碼;使用 Java 11,入口為 Solution.solve。
CodeSprout 官方解答 · 題意分析、解題步驟與完整參考程式
import java.util.*;
public class Solution {
private static int aggregate(List<Integer> values) {
if (values.isEmpty()) return 0;
int answer = values.get(0);
for (int x : values) answer = Math.min(answer, x);
return answer;
}
public static int solve(int[] left, int[] right) {
Set<Integer> values = new HashSet<>(), rightSet = new HashSet<>();
for (int x : left) values.add(x);
for (int x : right) rightSet.add(x);
for (int x : rightSet) { if (!values.add(x)) values.remove(x); }
List<Integer> result = new ArrayList<>();
for (int x : values) if (x % 2 == 0) result.add(x);
return aggregate(result);
}
}
留言討論 0
登入 後就能留言,一起討論不同的寫法。