美文网首页
2020-11-15-简单-1470. 重新排列数组

2020-11-15-简单-1470. 重新排列数组

作者: 杨晓霞sherry | 来源:发表于2020-11-15 16:34 被阅读0次

题目链接:
https://leetcode-cn.com/problems/shuffle-the-array/
我的答案

class Solution {
  public int[] shuffle(int[] nums, int n) {
      int[] newnums =new int[nums.length]; 
      int count=0;
      for (int i = 0; i < n; i++) {
          for (int j = 0; j < nums.length; j++) {
              if(j%n==i) {
                  newnums[count]=nums[j];
                  count++;
              }
          } 
      }
      
      
      return newnums;
  }
}

题解

class Solution {
    public int[] shuffle(int[] nums, int n) {
        int[] newnums =new int[nums.length]; 
        int index=0; 
            for (int i = 0; i< n; i++) { 
                    newnums[index++]=nums[i]; 
                    newnums[index++]=nums[n+i];  
            }  
        
        
        return newnums;
    }
}

总结:我忽略了nums.length==2n 原题是只分成了两组,我以为是分成任意组。于是用了两重循环,外循环控制模除的值,内循环遍历所有值,分别筛选下标模除n的结果为0到n-1的数放进新数组,如果分为3组,那么一次内循环就增加3个值。复杂度O(n²)题解只遍历了一次,因为他知道只会分为两组。复杂度O(n)。

相关文章

网友评论

      本文标题:2020-11-15-简单-1470. 重新排列数组

      本文链接:https://www.haomeiwen.com/subject/vrinbktx.html