zoukankan      html  css  js  c++  java
  • 力扣(LeetCode) 905. 按奇偶排序数组

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

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

    示例:

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

    提示:

    1 <= A.length <= 5000
    0 <= A[i] <= 5000

    思路

    大概有几种 1. 新建一个数组,对原数组进行遍历,偶数从头部放进去,奇数从尾部放进去。
    2. 从前往后找奇数,从后往前找偶数,然后交换。
    3. 双层循环,外循环找奇数,内循环找偶数,然后交换。

    Java版

    class Solution {
        public int[] sortArrayByParity(int[] A) {
            int len = A.length;
    		int front = 0, end = len-1;//设置两个指针,一个指向头部,一个指向尾部
    		while(front < end)
    		{
    			while(front < len && A[front]%2 == 0)	//从前往后找偶数
    				front++;
    			while(end >= 0 &&  A[end]%2 == 1)	//从后往前找奇数
    				end--;
    			if(front < end)
    			{
    				int temp = A[front];	//将奇数往前挪,偶数往后挪
    				A[front] = A[end];
    				A[end] = temp;
    			}
    		}
            return A;
        }
    }
    

    C语言版

    /**
     * Return an array of size *returnSize.
     * Note: The returned array must be malloced, assume caller calls free().
     */
    int* sortArrayByParity(int* A, int ASize, int* returnSize) {
        int *num = (int *)malloc(sizeof(int)*ASize);
        *returnSize=ASize;
        int i,j;
        for(i=0;i<ASize;i++) {
            if(A[i] % 2 == 1) {//是奇数,往后放
                for(j=ASize-1;j>=0;j--) {
                    if(j > i) {
                        if(A[j] % 2 == 0) {//是偶数,往前放
                            int temp = A[j];
                            A[j] = A[i];
                            A[i] = temp;
                        }
                    }
                }
            }
        } 
        for(i=0;i<ASize;i++) {
            num[i]=A[i];
        }
        return num;   
    }
    

    运行结果

  • 相关阅读:
    pyqt动画的使用
    pyqt 自定义信号
    设计工具- QtDesigner
    样式控制-QSS 样式表
    布局管理之 QStackedLayout (堆 布局)
    布局管理之 QGridLayout (网格布局)
    布局管理之 QFormLayout (表单布局)
    看代码中
    公司同事好坑
    我要多开梦幻手游PC端(梦幻手游PC端多开的简单分析及实现办法)
  • 原文地址:https://www.cnblogs.com/lick468/p/10657007.html
Copyright © 2011-2022 走看看