CodeSprout程式萌芽
中等第 39 題 · 定點抽樣紀錄
CodeSprout 官方2026/10/04 00:19
官方解答 · 置頂Java

官方解答|定點抽樣紀錄

官方解答|定點抽樣紀錄

解題思路

從索引 2 開始,每次前進 3。每個選中的位置輸出 nums[i];previous 在輸出後才更新為該位置的原值。

正確性與邊界

previous 初值為 0,差值只比較相鄰的選中元素。起點超出陣列時不進入迴圈,回傳空清單,且不修改 nums。

複雜度

時間 O(n),額外空間 O(k),k 為選中元素數。

公開範例

輸入 {"nums": [1]},依上述步驟得到 []。

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

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

import java.util.*;

public class Solution {

    public static List<Integer> solve(int[] nums) {
        List<Integer> result = new ArrayList<>();
        int previous = 0;
        for (int i = 2; i < nums.length; i += 3) {
            result.add(nums[i]);
            previous = nums[i];
        }
        return result;
    }
}

留言討論 0