软件测试工程师 database express date xaml methods mysqli pip LimeJS vue部署 网赚教程下载 webapp打包 idea格式化代码设置 linux启动mysql命令 python如何实现多线程 python打开文件 python文件 python的lambda函数 java类与对象 java安装环境 javapattern java的map java实现队列 java数组最大值 迷宫解锁 sql行转列 beatedit 华为交换机学习指南 winterboard 在线手册 生存猎人属性 wow怎么赚钱 1667 蜘蛛皮肤 网络驱动 txplatform android开发案例 幽灵推 python进制转换 python常用函数
当前位置: 首页 > 学习教程  > 编程语言

数组-奇数位上都是奇数或者偶数位上都是偶数(牛客网)

2021/1/28 23:38:08 文章标签:

题目描述: 给定一个长度不小于2的数组arr。 写一个函数调整arr,使arr中要么所有的偶数位上都是偶数,要么所有的奇数位上都是奇数上。 要求:如果数组长度为N,时间复杂度请达到O(N),额外空间复杂度请达到O(1…

题目描述:

给定一个长度不小于2的数组arr。 写一个函数调整arr,使arr中要么所有的偶数位上都是偶数,要么所有的奇数位上都是奇数上。 要求:如果数组长度为N,时间复杂度请达到O(N),额外空间复杂度请达到O(1),下标0,2,4,6…算作偶数位,下标1,3,5,7…算作奇数位,例如[1,2,3,4]调整为[2,1,4,3]即可

程序代码如下:

class Solution {
public:
    /**
     *  奇数位上都是奇数或者偶数位上都是偶数
     *  输入:数组arr,长度大于2
     *  len:arr的长度
     *  将arr调整成奇数位上都是奇数或者偶数位上都是偶数
     */
    void oddInOddEvenInEven(vector<int>& arr, int len) {
        int i= 0,j = 1;
         while(i<len && j<len)
         {
             if(arr[len-1]%2==0)
             {
                 swap(arr[len-1],arr[i]);
                 i+=2;
             }
             else
             {
                  swap(arr[len-1],arr[j]);
                  j+=2;
             }
         }
    }
};

本文链接: http://www.dtmao.cc/news_show_650256.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?