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

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

http://www.nowcoder.com/practice/ef1f53ef31ca408cada5093c8780f44b

解法一:插入排序思想

记录已经是奇数的位置下标(视作为有序区域),然后向后遍历,一经发现是奇数则进行“插入排序”,然后有序区下标加1。

Java参考代码:

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param array int整型一维数组 
     * @return int整型一维数组
     */
//使用插入排序的思想
    public int[] reOrderArray (int[] array) {
        // 首先是对数值长度进行特判
        if(array==null||array.length==0) return array;
          //记录已经是奇数的位置
        int j=0;
        int temp = 0;
        for(int i =0;i<array.length;i++){
            temp = array[i];
            //如果该值为偶数
            if(array[i]%2==0){
                continue;
            }else{//该值为奇数
                int k =i;
                while(k>j){
                    //这区间整体向后移动一位
                    array[k] = array[k-1];
                    k--;
                }
                //移位

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

小白专属-牛客题解 文章被收录于专栏

专注于牛客平台编程题题解,文字+图解。内容很细,小白友好系列

全部评论
while的终止条件left<len>=0 只需写一个就可以了吧?左右指针的速度、路程是一样的 我理解实际上也是遍历了两遍数组,只是放在同一个循环中了</len>
点赞 回复 分享
发布于 2023-04-09 10:59 湖北
题目要求:保证奇数和奇数,偶数和偶数之间的相对位置不变。第二种方法是否不满足这个条件?
点赞 回复 分享
发布于 2023-08-25 03:58 广东

相关推荐

13 2 评论
分享
牛客网
牛客企业服务