zoukankan      html  css  js  c++  java
  • 905 -按奇偶校验排序数组

    给定一个A非负整数数组,返回一个由所有偶数元素组成的数组A,后跟所有奇数元素A

    您可以返回满足此条件的任何答案数组。

    例1:

    输入:[3,1,2,4] 
    输出:[2,4,3,1]
    产出[4,2,3,1],[2,4,1,3]和[4,2,1,3]也将被接受。
    

    注意:

    1. 1 <= A.length <= 5000
    2. 0 <= A[i] <= 5000
    解法1:
    设置i为数组首位下标,j为数组末尾下标,当数组下标为i的值为奇数,同时数组下标为j的值为偶数时位置互换,同时i向后移动,j向前移动;若数组下标i的值仅为偶数时i向后移动,其他情况下j向前移动。
     public static  int[] sortArrayByParity(int[] A)
        {
              int i=0,j=A.length-1;
              while(i<j)
              {
                  if (A[i]%2==1&&A[j]%2==0)
                  {
                      int temp=A[i];
                      A[i]=A[j];
                      A[j]=temp;
                      i++;
                      j--;
                  }else if (A[i]%2==0)
                  {
                      i++;
                  }else {
                      j--;
                  }
              }
            return A;
        }
    改进后:
      public static  int[] sortArrayByParity(int[] A)
        {
              int i=0,j=A.length-1;
              while(i<j)
              {
                  if (A[i]%2==0)
                  {
                      i++;
                  }else {
                      if (A[j]%2==0){
                          int temp=A[i];
                          A[i]=A[j];
                          A[j]=temp;
                      }
                      j--;
                  }
              }
            return A;
        }
    
    解法2:
    设置一个跟A容量大小相同的新数组,将A中的偶数从数组首位开始放入,将A中的奇数从末尾开始放入
    public int[] sortArrayByParity(int[] A) {
            int[] B = new int[A.length];
            int oddNumber = 0,evenNumber = A.length - 1;
            for (int i=0;i<A.length;i++) {
                if (A[i]%2 == 0) {
                    B[oddNumber++] = A[i];
                } else {
                    B[evenNumber--] = A[i];
                }
            }
            return B;
        }
  • 相关阅读:
    govendor用法
    java.util.DualPivotQuickSort的实现
    windows注册表
    一道正则表达式题目
    JDK10、JDK11、JDK12新特性
    初夏清晨有所思
    Java 9新特性
    sklearn聚类评价指标
    沉浸式和全局式
    [抄]外部奖励对内在动机的侵蚀
  • 原文地址:https://www.cnblogs.com/dloading/p/10701849.html
Copyright © 2011-2022 走看看