leetcode905–按奇偶排序数组(经典/原地排序)

简介: leetcode905–按奇偶排序数组(经典/原地排序)

经典题目:

给定一个非负整数数组 A,返回一个数组,在该数组中, A 的所有偶数元素之后跟着所有奇数元素。

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

主要要掌握最优解 这道题很简单

类快排(你不是真正的快排~)

/**
 * Note: The returned array must be malloced, assume caller calls free().
 */
void swap(int *a,int *b)
{
    int t = *a;
    *a = *b;
    *b = t;
}
int* sortArrayByParity(int* nums, int numsSize, int* returnSize){
    //kuaipaima
    *returnSize = numsSize;
    int i,j;
    for(i = 0,j = numsSize-1;i < j;)
    {
        if(nums[i]%2 == 0)
        {
            i++;
        }
        if(nums[j]%2 == 1)
        {
            j--;
        }
        if(i > j)
            break;
        swap(&nums[i],&nums[j]);
    }
    return nums;
}

官方答案

class Solution {
    public int[] sortArrayByParity(int[] A) {
        int i = 0, j = A.length - 1;
        while (i < j) {
            if (A[i] % 2 > A[j] % 2) {
                int tmp = A[i];
                A[i] = A[j];
                A[j] = tmp;
            }
            if (A[i] % 2 == 0) i++;
            if (A[j] % 2 == 1) j--;
        }
        return A;
    }
}
作者:LeetCode
链接:https://leetcode-cn.com/problems/sort-array-by-parity/solution/an-qi-ou-pai-xu-shu-zu-by-leetcode/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
相关文章
|
2月前
|
算法
【数组相关面试题】LeetCode试题
【数组相关面试题】LeetCode试题
|
2月前
|
存储
力扣面试经典题之数组/字符串
力扣面试经典题之数组/字符串
23 0
|
2月前
|
人工智能 BI
力扣561 数组拆分
力扣561 数组拆分
【每日一题】6.LeetCode——轮转数组
【每日一题】6.LeetCode——轮转数组
|
22天前
【Leetcode】两数之和,给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
【Leetcode】两数之和,给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
|
3天前
|
索引
Leetcode 给定一个数组,给定一个数字。返回数组中可以相加得到指定数字的两个索引
Leetcode 给定一个数组,给定一个数字。返回数组中可以相加得到指定数字的两个索引
|
17天前
【力扣】238. 除自身以外数组的乘积
【力扣】238. 除自身以外数组的乘积
|
17天前
|
C++
【力扣】2562. 找出数组的串联值
【力扣】2562. 找出数组的串联值
|
1月前
|
算法 C++ 索引
【力扣经典面试题】238. 除自身以外数组的乘积
【力扣经典面试题】238. 除自身以外数组的乘积
|
2月前
|
存储 算法
《LeetCode 热题 HOT 100》——寻找两个正序数组的中位数
《LeetCode 热题 HOT 100》——寻找两个正序数组的中位数

热门文章

最新文章