首页 > 其他分享 >剑指 Offer 21. 调整数组顺序使奇数位于偶数前面

剑指 Offer 21. 调整数组顺序使奇数位于偶数前面

时间:2023-05-16 10:15:17浏览次数:41  
标签:21 Offer int 复杂度 nums 偶数 数组 奇数

题目描述:

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组的前半部分,所有偶数在数组的后半部分。

 

提示:

  1. 0 <= nums.length <= 50000
  2. 0 <= nums[i] <= 10000

 

 

 

复杂度分析:
  时间复杂度 O(N) : N 为数组 nums 长度,双指针 i, j 共同遍历整个数组。
  空间复杂度 O(1) : 双指针 i, j使用常数大小的额外空间。

 

代码:

x&1 位运算 等价于 x%2 取余运算,即皆可用于判断数字奇偶性。

class Solution{
    public int[] exchange(int nums[]){
        int i=0,j=nums.length-1,tmp;
        while(i<j){
            while(i<j&&(nums[i]&1)==1) i++;
            while(i<j&&(nums[j]&1)==0) j--;
            tmp=nums[i];
            nums[i]=nums[j];
            nums[j]=tmp;
        }
        return nums;
    }
}

 

标签:21,Offer,int,复杂度,nums,偶数,数组,奇数
From: https://www.cnblogs.com/zhz123567/p/17404017.html

相关文章

  • 21、闭包
    1.闭包的概念Go语言中支持将一个函数作为另一个函数的返回值,这样就形成了闭包的结构闭包(closure)一个外层函数中,有内层函数,该内层函数中,会操作外层函数的局部变量(外层函数中的参数或者外层函数中直接定义的变量),并且该外层函数的返回值就是这个内层函数这个内层函数和外城函......
  • 21st
     #include<iostream>usingnamespacestd; inta[14];intmain(){ intj=1,n; for(inti=1;i<=13;i++){ n=1; do{ if(j>13)// j=1; if(a[j]){//如果不是空盒跳过 j++; } else{ if(n==i) a[j]=i;//如果是第i个空盒存入 j++; n++; } }while(n<=i) ; } fo......
  • 天鹰优化AO算法2021年算法优化广义神经网络GRNN做多特征输入,单个因变量输出的拟合预测
    天鹰优化AO算法2021年算法优化广义神经网络GRNN做多特征输入,单个因变量输出的拟合预测模型。程序内注释详细直接替换数据就可以用。程序语言为matlab。不会替换数据的可以免费指导替换数据。。ID:8235679132604293......
  • 剑指 Offer 20. 表示数值的字符串
    题目描述:请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。   classSolution{publicbooleanisNumber(Strings){if(s==null||s.length()==0)returnfalse;//s为空对象或s长度为0(空字符串)时,不能表示数值charstr[]=s.trim()......
  • 2021平(jia)凡(ban)的一年
    0x00刚刚把《平凡的世界》电视剧看完。也不知道什么原因,又去刷了一遍,可能是有那么一段时间比较迷茫、加班加到怀疑人生了吧。记得当年第一次看这本小说还是17年,好像是为了借一本什么书来着,就去了省图书馆。本来打算借完书就走的,结果在书架正好看到了《平凡的世界》,而且又有不少......
  • 分库分表的 21 条法则,hold 住!
    大家好,我是小富~(一)好好的系统,为什么要分库分表?本文是《分库分表ShardingSphere5.x原理与实战》系列的第二篇文章,距离上一篇文章已经过去好久了,惭愧惭愧~还是不着急实战,咱们先介绍下在分库分表架构实施过程中,会接触到的一些通用概念,了解这些概念能够帮助理解市面上其他的分库分表......
  • 剑指 Offer 18. 删除链表的节点
    题目描述:给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。     复杂度分析:  时间复杂度O(N):N为链表长度,删除操作平均需循环N/2次,最差N次。  空间复杂度O(1):cur,pre占用常数大小额外空间。class......
  • 2月28日学习总结20230321
    上午智慧物业管理系统Java开发有一个三层规范(包结构)controllerfileController:文件的上传的与删除service(重点)dao持久层domain:实体类的包,与数据库中的表建立映射关系,操作实体类就是操作数据库中的表。面向对象的思想,OIMcommon:工具的类,公共的组件(不再会有任何编辑,就直接使用了)messa......
  • 2月27日学习总结20230321
    上午PDDTDDDDDTDD测试驱动开发,先写模块测试,在进行模块开发;测试失败后编写实现代码,测试成功后接着迭代下一个功能DDD领域驱动设计,更多关注业务层,定义几个模块,写模块的功能BDD行为驱动开发,从用户需求出发,强调系统行为,是TDD的补充mock服务完整介绍:​​​测试开发工程必备技能之......
  • 3月7日20230321
    计划[]crm项目基本看完[]看crapapi代码[]补所不会的内容执行09点51分 学习crm知识记录springMVC项目搭建开发环境idea有项目和工程的概念,一个项目可以有多个工程创建好了项目newproject——>创建工程newmodel补全目录结构添加依赖,看用什么技术配置文件mybatis-config.xmla......