(简单)剑指Offer 21. 调整数组顺序使奇数位于偶数前面 Java

在这里插入图片描述

记数组nums的长度为n。从先nums左侧开始遍历,如果遇到的是奇数,就表示这个元素已经调整完成,继续从左往右遍历,直到遇到一个偶数。然后从nums右侧开始遍历,如果遇到的是偶数,就表示这个元素已经调整完成了,继续从右往左遍历,直到遇到一个奇数,将换这个偶数和奇数的位置,并且重复两边的遍历,直到在中间相遇,nums调整完成。

class Solution {public int[] exchange(int[] nums) {int left = 0;int right = nums.length - 1;while (left < right) {while (left < right && (nums[left] & 1) != 0) {left++;}while (left < right && (nums[right] & 1) == 0) {right--;}if (left < right) {int tmp = nums[left];nums[left] = nums[right];nums[right] = tmp;}}return nums;}
}

复杂度分析:

  • 时间复杂度:O(n),原数组中每个元素只遍历一次。
  • 空间复杂度:O(n),原地调整,只消耗常数空间。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/27890.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何有效跟踪员工时间:时间管理方法和工具

许多人认为时间追踪是一件麻烦事&#xff0c;会分散他们对主要职责的注意力。 员工不喜欢填写工时表&#xff0c;也不喜欢受到额外的监督&#xff1b;对于管理者来说&#xff0c;时间跟踪始终是一项额外的工作&#xff0c;要确保所有员工正确、按时地填写工时表。 但无论如何…

Ubuntu开机自启动设置

一、创建执行脚本 这里有两个程序所以编写了两个脚本&#xff0c;第一脚本(master.sh)&#xff1a; gnome-terminal -- bash -c "source /home/zyy/anaconda3/bin/activate wood2;cd /home/zyy/pycharmProject/master_program;python main.py > /home/zyy/pycharmProj…

redolog 、undolog 和binlog

redolog(可以恢复数据&#xff0c;保证数据不丢失) 、undolog(事务回滚) 和binlog&#xff08;主从同步数据&#xff09; 脏页 在mysql中&#xff0c;当内存数据页和磁盘数据页上的内容不一致时&#xff0c;则称这个内存页为脏页 脏页什么时候会刷入磁盘&#xff1f; ● redo…

【JVM】14. 堆外内存

文章目录 堆外内存的意义堆外内存(Off-heap memory)是指在计算机内存管理之外进行分配和使用的内存空间。与堆内内存(Heap memory)不同,堆外内存不受Java虚拟机(JVM)的垃圾回收机制控制,需要手动进行内存的分配和释放。 堆外内存通常由操作系统提供支持,可以通过直接…

-bash: ./est.sh: /bin/bash^M: 坏的解释器: 没有那个文件或目录

方法一&#xff1a; 方法二&#xff1a; sed -i s/\r$// xxx.sh

概率论的学习和整理16: 泊松分布(未完成)

目录 简单的扩展到泊松分布 比较整体的动态过程&#xff0c;增加实验次数时 当二项分布&#xff0c;n很大&#xff0c;p很小的时候&#xff0c;会趋向泊松分布 当n足够大时&#xff0c;二项分布趋向于正态分布。这个结论在概率论中被称为中心极限定理&#xff0c;它是概率论中一…

应用案例 | 高效的工厂资产管理

自加入艾默生的DeltaV联盟产品计划以来&#xff0c;Softing一直致力于将设备管理的应用范围扩大到整个过程自动化工厂&#xff0c;并将设备管理的访问范围扩展到企业外部。 一 背景 随着现代流程工业对能源效率及灵活性需求的日益增长&#xff0c;在不同系统之间交换过程数据和…

【Linux】进程信号 -- 信号产生 | 系统调用、硬件、软件的信号发送

信号的旧识引入信号引入signal调用 系统调用向目标进程发送信号模拟实现一个kill命令raise给自己发送任意信号abort给自己发送指定信号(6)SIGABRT 硬件异常产生信号除0异常野指针访问异常 软件条件产生信号拓展 总结思考进程退出时核心转储问题小实验 信号的旧识引入 kill -l是…

Linux 支持 U盘 NTFS 文件系统格式

Linux 支持 U盘 NTFS 文件系统格式 1、在线&#xff08;可以连接外网&#xff09;方式&#xff1a; 1.1、RHEL/CentOS/Anolis/openEuler yum install ntfs-3g1.2、Debian/Ubuntu/Deepin apt install ntfs-3g2、离线方式 下载 ntfs-3g 安装包&#xff0c;离线环境安装 ntfs…

辅助笔记-linux找回root密码(CentOS7.6)

linux找回root密码(CentOS7.6) 文章目录 linux找回root密码(CentOS7.6)步骤1步骤2步骤3步骤4步骤5 本文主要参考自“韩顺平教育–linux找回root密码.docx”。 步骤1 首先&#xff0c;启动系统进入开机界面&#xff0c;注意在此界面下的5秒之内&#xff0c;使用键盘的上下键使得…

python的魔法函数

一、介绍 在Python中&#xff0c;魔法函数是以双下划线__开头和结尾的特殊函数。它们在类定义中用于实现特定的行为&#xff0c;例如运算符重载、属性访问、迭代等。 以下是一些常见的Python魔法函数&#xff1a; __init__: 这是一个特殊的构造函数&#xff0c;在创建类的实例…

SAP ALV 点击单元格跳转事务代码

实现效果&#xff1a;销售订单明细表&#xff0c;双击单元格进入 va03 事务代码 1.alv 显示报表调用函数 i_callback_user_command 加上方法名 CALL FUNCTION REUSE_ALV_GRID_DISPLAY_LVCEXPORTINGi_callback_program sy-repid * i_callback_pf_status_set FRM…