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



    输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变


    解法一

    第一次循环遍历数组,找到第一个奇数
    遍历奇数之前的数组,找到第一个偶数,并交换奇数和偶数

    public class Solution {
        public void reOrderArray(int [] array) {
            int temp = 0;
            for(int i = 0; i < array.length; i++) {
                if((array[i] & 1) == 1) {
                    for(int j = 0; j < i; j++) {
                        if((array[j] & 1) == 0) {
                            temp = array[i];
                            array[i] = array[j];
                            array[j] = temp;
                        }
                    }
                }
            }
        }
    }
    

    解法二

    以空间换时间的思路,定义一个和原数组大小相同的新数组,并且遍历原数组,同时从两端进行判断,左边负责判断奇数,遇到就放入新数组(正向放入);右边负责判断偶数,遇到就放入新数组(后从向前放),一遍循环结束,新数组就是我们想要的结果

    public class Solution {
        public void reOrderArray(int [] array) {
            int[] temp = new int[array.length];
            int low = 0;
            int high = array.length - 1;
            for(int i = 0; i < array.length; i++) {
                if((array[i] & 1) == 1) {
                    temp[low] = array[i];
                    low++;
                }
                if((array[array.length - i - 1] & 1) == 0) {
                    temp[high] = array[array.length - i - 1];
                    high--;
                }
            }
            for(int i = 0; i < temp.length; i++) {
                array[i] = temp[i];
            }
        }
    }
    

  • 相关阅读:
    Spring中的Type学习
    Spring发布监听机制
    BeanFactory父子容器的知识
    Spring中自动创建代理器
    ProxyConfig属性详解
    BeanFactoryAdvisorRetrievalHelper:从Bean工厂检索出Advisor们
    代理机制
    Spring AOP组件
    @Value的使用
    BeanPostProcessor原理--使用讲解
  • 原文地址:https://www.cnblogs.com/Yee-Q/p/13735570.html
Copyright © 2020-2023  润新知