【LeetCode力扣】1470. 重新排列数组(Java双指针)

文章目录

  • 一、题目
  • 二、解题
    • 1.思路
    • 2.代码
    • 3.复杂度分析


一、题目

重新排列数组简单
给你一个数组 nums ,数组中有 2n 个元素,按 [x1,x2,…,xn,y1,y2,…,yn] 的格式排列。

请你将数组按 [x1,y1,x2,y2,…,xn,yn] 格式重新排列,返回重排后的数组。

二、解题

1.思路

双指针
左指针为0,右指针为原数组一半的位置开始
分别把左右指针指向的数放入返回数组res[]中

2.代码

class Solution {
    public int[] shuffle(int[] nums, int n) {
        int[] res = new int[2*n];

        int i = 0; 
        int left = 0;
        int right = n;

        while(left != n){
            res[i++] = nums[left++];
            res[i++] = nums[right++];
        }
        return res;
    }
}

3.复杂度分析

时间复杂度:O(n)
空间复杂度:O(1)

你可能感兴趣的:(LeetCode,leetcode,算法,数据结构)