LeetCode 每日一題 1470. 重新排列數組

1. 題目

1470. 重新排列數組

2. 描述

給你一個數組 nums ,數組中有 2n 個元素,按 [x1,x2,…,xn,y1,y2,…,yn] 的格式排列。

請你將數組按 [x1,y1,x2,y2,…,xn,yn] 格式重新排列,返回重排後的數組。

3. 思路

只需要新建一個 2n2*n 長度的數組用於存放最終結果,同時用一個整數來作爲當前結果的位置即可,然後就是講數組進行重排列即可,此時主要操作就是進行遍歷,時間複雜度爲 O(n)O(n).

4. 實現

public int[] shuffle(int[] nums, int n) {
    // 用於存放最終結果
    int[] result = new int[2 * n];
    int index = 0;

    for (int i = 0; i < n; i++) {
        // 加入 x_i
        result[index++] = nums[i];
        // 加入 y_i
        result[index++] = nums[n + i];
    }

    return result;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章