zoukankan      html  css  js  c++  java
  • 调整数组顺序使奇数位于偶数前面

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

    题目描述

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

    版本一: 利用插入排序, 所不同的是多一个if条件判断

    class Solution {
    public:
        void reOrderArray(vector<int> &array) {
            int inner = 0;
            int outer = 0;
            long temp = 0;
            
            if (array.empty()) {
                return;
            }
            
            for (outer = 1; outer < array.size(); outer++) {
    			//if ((array[outer] + 1) % 2) { 	// 最开始写成这个版本了, 见下图
                if ((array[outer]) % 2) {
                    temp = array[outer];
                    inner = outer;
                    while ((inner > 0) && (0 == array[inner - 1] % 2)) {
                        array[inner] = array[inner - 1];
                        inner--;
                    }
                    array[inner] = temp;
                }
            }
        }
    };
    

    版本二: 条件判断拓展, 剑指offer中的条件拓展, 奇偶判断是亮点

    class Solution {
    public:
        bool isEven(int number) {
            return  (number & 1) == 0;
        }
        
        void reOrderArray(vector<int> &array) {
            int inner = 0;
            int outer = 0;
            long temp = 0;
            
            if (array.empty()) {
                return;
            }
            
            for (outer = 1; outer < array.size(); outer++) {
                if (! isEven(array[outer])) {
                    temp = array[outer];
                    inner = outer;
                    while ((inner > 0) && isEven(array[inner-1])) {
                        array[inner] = array[inner - 1];
                        inner--;
                    }
                    array[inner] = temp;
                }
            }
        }
    };
    

  • 相关阅读:
    UIWebView 获取当前的javascript上下文,并js,oc互调
    socket.io emit 常见用法
    ubuntu nginx 安装 certbot(letsencrypt)
    vi 常用命令
    html5 的缓存应用 manifest="filename.appcache"
    swift 与 指针初级使用
    xcode7,ios9 部分兼容设置
    xampp 修改mysql 密码
    mac下xampp简单虚拟主机配置
    Python学习笔记之六:在VS中调用Python
  • 原文地址:https://www.cnblogs.com/hesper/p/10434937.html
Copyright © 2011-2022 走看看