官方解答 · 置頂Java
官方解答|觀測資料整理
官方解答|觀測資料整理
解題思路
依原索引走訪 nums,先依「介於負二與三」篩選原值,再套用 -x。最後執行「將轉換後的序列反轉,保留重複值」;索引 i 始終是原陣列索引。
正確性與邊界
不直接修改 nums;空陣列自然產生空清單。若要求去重,去重的是轉換後的值,LinkedHashSet 同時保留首次出現順序。
「介於負二與三」包含兩個端點,即 -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<>();
for (int i = 0; i < nums.length; i++) {
int x = nums[i];
if (x >= -2 && x <= 3) result.add(-x);
}
Collections.reverse(result);
return result;
}
}
留言討論 0
登入 後就能留言,一起討論不同的寫法。