美文网首页
调整数组顺序使奇数位于偶数前面

调整数组顺序使奇数位于偶数前面

作者: 曾大稳丶 | 来源:发表于2022-05-18 10:02 被阅读0次

题目链接:https://leetcode.cn/problems/diao-zheng-shu-zu-shun-xu-shi-qi-shu-wei-yu-ou-shu-qian-mian-lcof/

image.png

题目解析
采用双指针的方式,两个指针分别从头和尾往中间遍历,左边开始找到偶数锁定下标,右边找到奇数锁定下标,然后进行交换,一直遍历到中间为止。

public int[] exchange(int[] nums) {
    if (nums==null || nums.length <=1){
        return nums;
    }
    int l = 0, r = nums.length - 1 , tmp = 0;
    while (l < r){
        while (l < r && nums[l] % 2 == 1){
            l++;
        }
        while (l < r && nums[r] % 2 == 0){
            r--;
        }
        //交换
        tmp = nums[l];
        nums[l] = nums[r];
        nums[r] = tmp;
    }
    return nums;
}

复杂度分析
空间复杂度: O(1)。
时间复杂度: O(N)。

相关文章

网友评论

      本文标题:调整数组顺序使奇数位于偶数前面

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