当前位置: 首页 > news >正文

Sort Array By Parity

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

Sort Array By Parity

Given an array A of non-negative integers, return an array consisting of all the even elements of A, followed by all the odd elements of A.

You may return any answer array that satisfies this condition.

Example 1:

Input: [3,1,2,4]

Output: [2,4,3,1]

The outputs [4,2,3,1], [2,4,1,3], and [4,2,1,3] would also be accepted.

说明

这个题目的意思是,将一个数列中的顺序调整为:前半部分为偶数,后半部分为奇数。除此之外,数列不必有序。

我用了快速排序的思路,从头和尾两边对数列进行遍历。

从左边开始,遇到奇数就停止遍历;然后从右边开始进行遍历,遇到偶数就停止遍历。 最后将这两个数交换顺序。

两边的遍历指针相遇的时候,整个工作结束。

MySolution

class Solution2
{
public:
    vector<int> sortArrayByBarity(vector<int> &A)
    {
        int head = 0;
        int rear = A.size()-1;
        while(head < rear)
        {
            while((A[head]%2==0) && (head < rear)) head++;
            while((A[rear]%2==1) && (head < rear)) rear--;
            if(head < rear)
                swap(A[head++],A[rear--]);
        }
        return A;
    }
};

测试代码

#include<iostream>
#include<vector>
#include<map>


using namespace std;

class Solution2
{
public:
    vector<int> sortArrayByBarity(vector<int> &A)
    {
        int head = 0;
        int rear = A.size()-1;
        while(head < rear)
        {
            while((A[head]%2==0) && (head < rear)) head++;
            while((A[rear]%2==1) && (head < rear)) rear--;
            if(head < rear)
                swap(A[head++],A[rear--]);
        }
        return A;
    }
};

int main(void)
{
    vector<int> a;
    a.push_back(100);
    a.push_back(4);
    a.push_back(200);
    a.push_back(1);
    a.push_back(3);
    a.push_back(2);

     cout<<endl;
     cout<<"Solution2 output:";
     Solution2 s2;
     s2.sortArrayByBarity(a);
     for(int i = 0;i<a.size();i++)
         cout <<" "<<a[i];
     cout<<endl;
    return 0;
}

转载于:https://my.oschina.net/u/1771419/blog/2054462

相关文章:

  • 区块链开发公司浅析区块链如何保障安全
  • [BZOJ] 2006: [NOI2010]超级钢琴
  • MTV框架和django基本命令
  • MySQL5.6 主从复制 ERROR 1776 (HY000): Parameters MASTER_LOG_FILE
  • 设计模式代理
  • [国家集训队]Crash的文明世界
  • 说说 C 语言编程利器 CLion
  • Netty系列文章之构建HTTP(HTTPS)应用程序
  • 配置Redis客户端
  • c# 读取blob数据
  • 一文详解达观数据知识图谱技术与应用——技术直播回顾
  • shell日志颜色处理
  • 关于矩阵自由度的解释
  • 使用包和测试
  • 2018 noip 考前临死挣扎
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • E-HPC支持多队列管理和自动伸缩
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • gitlab-ci配置详解(一)
  • LeetCode29.两数相除 JavaScript
  • php的插入排序,通过双层for循环
  • VUE es6技巧写法(持续更新中~~~)
  • 对超线程几个不同角度的解释
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 排序算法之--选择排序
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • 用jquery写贪吃蛇
  • 栈实现走出迷宫(C++)
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • 《TCP IP 详解卷1:协议》阅读笔记 - 第六章
  • C# - 为值类型重定义相等性
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • # centos7下FFmpeg环境部署记录
  • #162 (Div. 2)
  • #ifdef 的技巧用法
  • (动态规划)5. 最长回文子串 java解决
  • (附源码)springboot码头作业管理系统 毕业设计 341654
  • (三)模仿学习-Action数据的模仿
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...
  • (转)3D模板阴影原理
  • (转)Linux下编译安装log4cxx
  • (转)菜鸟学数据库(三)——存储过程
  • .NET(C#、VB)APP开发——Smobiler平台控件介绍:Bluetooth组件
  • .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试
  • .NET框架
  • .NET正则基础之——正则委托
  • .xml 下拉列表_RecyclerView嵌套recyclerview实现二级下拉列表,包含自定义IOS对话框...
  • @media screen 针对不同移动设备
  • [ C++ ] STL_stack(栈)queue(队列)使用及其重要接口模拟实现
  • [.net] 如何在mail的加入正文显示图片
  • [AIGC] MySQL存储引擎详解
  • [AX]AX2012开发新特性-禁止表或者表字段
  • [BSGS算法]纯水斐波那契数列
  • [BZOJ]4817: [Sdoi2017]树点涂色