前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >力扣做题笔记(1):重新排列数组

力扣做题笔记(1):重新排列数组

作者头像
Eternity
发布2022-08-24 20:02:30
2490
发布2022-08-24 20:02:30
举报

题目

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

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

示例 :

代码语言:javascript
复制
输入:nums = [2,5,1,3,4,7], n = 3
输出:[2,3,5,4,1,7] 
解释:由于 x1=2, x2=5, x3=1, y1=3, y2=4, y3=7 ,所以答案为 [2,3,5,4,1,7]

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/shuffle-the-array

解题思路

  1. 先通过循环把x和y分别给两个数组。
  2. 在把两个数组交叉合并

代码

代码语言:javascript
复制
class Solution {
    public int[] shuffle(int[] nums, int n) {
        int[] Array = new int[2 * n];
        int[] Arrayx = new int[n];
        int[] Arrayy = new int[n];
        int a = 0, b = 0;
        for (int i = 0; i < Arrayx.length; i++) {//把数组的前n个给x数组
            Arrayx[i] = nums[i];
        }
        for (int i = 0; i < Arrayy.length; i++) {//把数组的后n个给y数组
            Arrayy[i] = nums[i+n];
        }
        for (int i = 0; i < Array.length; i++) {//把x和y数组交叉合并
            if (i % 2 ==0){
                Array[i] = Arrayx[a++];
            } else {
                Array[i] = Arrayy[b++];
            }

        }
        return Array;
    }

}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-02-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目
  • 解题思路
  • 代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档