调整数组顺序使奇数位于偶数前面(二十)

调整数组使奇数全部都位于偶数前面 调整数组使奇数全部都位于偶数前面。 题目: 输入一个整数数组,实现一个函数, 来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分, 所有偶数位于数组的后半部分。 ———————————————————————————————————— 对题目的解析: 要将所有的奇数挪到偶数的前面,就需要定义两个指针,一个left指针指向数组的开始,一个right指针指向数组的最后一个数字,当left指... 阅读详情

题目
输入一个整数数组,实现一个函数来调整该数组中数字的顺序。

使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分。

样例

输入:[1,2,3,4,5]

输出: [1,3,5,2,4]

算法
(双指针扫描) O(n)
用两个指针分别从首尾开始,往中间扫描。扫描时保证第一个指针前面的数都是奇数,第二个指针后面的数都是偶数。

每次迭代时需要进行的操作:

  1. 第一个指针一直往后走,直到遇到第一个偶数为止;
  2. 第二个指针一直往前走,直到遇到第一个奇数为止;
  3. 交换两个指针指向的位置上的数,再进入下一层迭代,直到两个指针相遇为止;

时间复杂度
当两个指针相遇时,走过的总路程长度是 nn,所以时间复杂度是 O(n)。

class Solution {
    public void reOrderArray(int [] array) {
        int l = 0;
        int r = array.length - 1;
        while(l < r){
            while(array[l] % 2 != 0) l++;
            while(array[r] % 2 == 0) r--;
            if(l < r){
            	//交换 array[l]和 array[r]
                array[l] = array[l] ^ array[r];
                array[r] = array[l] ^ array[r];
                array[l] = array[l] ^ array[r];
            }
        }
    }
}
CKA-CN考试之路----1 后的的任意位置,但-n 和autoscale 必须是相连的.后面不再对命名空间部分做解释了.说明配置正确,如果无法保存退出,再次检查对齐.不用怀疑一定是复制的时候少了字母或者对齐出错.运行以下命令确认红色箭头的值和题目要求是否一致。将文档中的内容复制并粘贴到对应位置.,后续不再提醒yaml的对齐。确认脚本check1.sh。 阅读详情

相关推荐

从建模到调参:基于Simulink的两轮差速机器人轨迹跟踪PID控制全流程解析

本文详细解析了基于Simulink的两轮差速机器人轨迹跟踪PID控制全流程,涵盖运动学建模、仿真环境搭建、PID控制器设计与实现等关键环节。通过Simulink仿真和可视化调试技巧,帮助开发者掌握移动机器人运动控制的核心技术,提升轨迹跟踪精度与性能优化能力。

weixin_28717683的博客 244

调整数组使奇数全部都位于偶数前面。

输入一个整数数组,实现一个函数, 来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分, 所有偶数位于数组的后半部分。 方法一: 用一个数组存奇数,另一个数组存偶数,再赋值给原数组,进行输出 #include <stdio.h> int main() { int arr[10] = { 1, 2, 4, 8, 7, 9, 5, 6, 3 }; int arr1[10] =...

Jackson2028的博客 458

什么是无人机巡检?如何实现无人机自动巡检?

复亚智能的无人机自动巡检系统通过高度自动化的技术,实现了无人机的高效巡检作业。无人机自动机场支持无人机的自动起降和电池更换,自动飞行算法确保无人机在复杂环境中的精准飞行和拍摄,而云端识别诊断和AI感知算法平台则实现图像的实时传输和智能分析。复亚智能,作为无人机技术的创新者和推动者,致力于开发先进的无人机自动巡检解决方案,助力各行各业实现智能化、自动化的巡检工作,引领智能巡检的未来。利用人工智能和机器学习算法,无人机可以被训练来识别特定的模式和异常,如结构损坏、热泄漏等,从而提高巡检的准确性和效率。

foiadrone的博客 2844

[每日一道小算法(二十五)] [数组] 调整数组顺序使奇数位于偶数前面(剑指offer)

前言: 这几天做算法题,比以前快了,继续努力,希望越来越好。 题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 题目解析 这道题其实就是使数组分开,前边是奇数,后面是偶数,并且顺序不可以打乱。所以我首先就想到了借用辅助数组,然后将奇数和偶数分开再重新整合到一个数组里面,...

qq_39397165的博客 206

自抗扰控制ADRC原理解析及案例应用

ESO的设计通常基于系统动态方程的线性化或近似模型,其输出包括系统状态的估计值和总扰动的估计值。非线性状态误差反馈控制律(Nonlinear State Error Feedback,NLSEF)是ADRC的最后一个环节,负责根据ESO和TD提供的信息生成控制信号。ADRC的另一个重要发展方向是与其他控制策略的融合,如模糊控制、神经网络和自适应控制等,以进一步提高系统的鲁棒性和适应性。ADRC的参数主要包括扩张状态观测器(ESO)的参数和非线性状态误差反馈控制律(NLSEF)的参数。

LIUMAO99的博客 9285

伺服电机的位置控制模式:PP模式与CSP模式的比较

在轮廓位置模式下,上位机给定目标绝对位置(或相对位置)、速度、加速度等参数,伺服内部的轨迹发生器根据这些参数生成目标位置曲线指令,通过伺服驱动器内部实现三环控制(位置环、速度环、力矩环)。如果还不理解,不妨看看下面的类比:轮廓位置模式中,上位控制器对伺服电机说,我给你个位置,怎么去哪,走那条路,那是你自己的事,这个时候伺服电机是有自己的思想的。同期同步位置模式红,上位机控制器对伺服电机的管理就和 严格,除了告诉你目标位置,走那条路都是控制器说的算,伺服电机就是个没有灵魂的工具。重点关注,轮廓位置模式。

m0_49968063的博客 5810

《剑指offer》第二十一题(调整数组顺序使奇数位于偶数前面)

// 面试题21:调整数组顺序使奇数位于偶数前面 // 题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有 // 奇数位于数组的前半部分,所有偶数位于数组的后半部分。 #include <iostream> void Reorder(int *pData, unsigned int length, bool(*func)(int)); ...

weixin_30580943的博客 75

大数据国赛第2套任务C-子任务一特征工程

根据**Hudi**的dwd_ds_hudi库中相关表或MySQL中shtd_store中相关表(order_detail、sku_info),计算出与用户id为6708的用户所购买相同商品种类最多的前10位用户(只考虑他俩购买过多少种相同的商品,不考虑相同的商品买了多少次),将10位用户id进行输出,若与多个用户购买的商品种类相同,则输出结果按照用户id升序排序,输出格式如下,将结果截图粘贴至客户端桌面【Release任务C提交结果.docx】中对应的任务序号下;

weixin_44117248的博客 904

第二十六题 调整数组顺序使奇数位于偶数前面

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

oqqNAME的专栏 641

Ardupilot chibios IO固件,IO与FMU通信,固件下载(3)

目录 文章目录目录摘要 摘要 本节主要记录自己学习IO与FMU通信

陌城烟雨 2801

Python 爬虫实战:美团大众点评餐厅数据爬取与分析

本文摘要:美团/大众点评餐厅数据爬虫实战指南 本文详细介绍了如何开发一个完整的餐厅数据爬虫系统,涵盖从环境配置到数据可视化的全流程。主要内容包括: 项目目标:爬取餐厅基本信息(名称、评分、价格等)及详情数据,支持市场分析和商业决策 技术方案:使用Python生态工具(Requests、Playwright、Pandas等)构建爬虫系统 核心挑战:破解大众点评的字体反爬机制和美团的API签名验证 实现细节:提供完整的代码示例,包括字体解析、签名生成、请求重试等关键功能 数据应用:支持将结果导出为CSV/Exc

u014481728的博客 319

面试题(二十一) 调整数组顺序使奇数位于偶数前面

题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。思路:若没有“保证奇数之间、偶数之间的相对位置不变”这一要求,可以使用一前一后两个指针来将所有奇数移动到数组前半部分,所有偶数移动到数组后半部分。此时可以借鉴插入排序的思想,在遍历数组的过程中将奇数和偶数移动到满足要求的位置

CurryXu的博客 367

高项备考论文:规划绩效域

高项备考论文:规划绩效域

liuxu324的博客 1129

【剑指offer】调整数组顺序使奇数位于偶数前面

剑指offer题解:调整数组顺序使奇数位于偶数前面

weixin_63449996的博客 1129

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

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

调整数组顺序使奇数位于偶数前面(点击链接进入题目) 描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 题目分析:针对本题,我们有不同的方法来解决,本题中保证奇数和偶数之间的相对位置不变是一个难点,读者们可以分别考虑两种情况:a-相对位置变化;b-相对位置不变。 法一:我们很容易想到的一个方法就是对数组进行遍历,此时借助一个辅助数组newarray,遍历第一遍数组找出奇数,挨个尾插

小东的博客 1215

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

九度笔记之 调整数组顺序使奇数位于偶数前面

题目 题目1516:调整数组顺序使奇数位于偶数前面 时间限制:1 秒 内存限制:128 兆 特殊判题:否 提交:13 解决:6 题目描述: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 输入

KingEasternSun的专栏 1537

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

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

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分。 代码: /* 调整数组顺序使得奇数位于偶数前面 by Rowandjj 2014/8/1 */ #include #include using namespace std; //高效解法,但会调整后的数组元素相对顺序会发生改变 void func(int *

RowandJJ 1264

【剑指 offer】调整数组顺序使奇数位于偶数前面

对数组进行遍历排序,奇数排在偶数前,切相较于原来的元素位置是不改变的

bit me的博客 588

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

调整数组顺序使奇数位于偶数前面 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 思路 遍历数组,判断数组的每个元素是奇数还是偶数,分别存在两个不同的数组里,遍历完成后连接两个数组。 代码 function reOrderArray(array) { // write c...

qq_40608516的博客 566

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

题目: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 思路: 如果可以使用辅助数组,问题就变的简单很多,可以遍历两次分别将奇数偶数添加至数组中 如果不能开辟额外空间,那可以在遍历数组的过程中,用一个A指针记录当前有几个奇数,另一个B指针往后遍历,将此奇数后的第一个奇数插入到已有奇数的后面,同时A、B两个指针间的所有元素往后移一位 代码 public class Solution

Joy 的博客 485

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

LeetCode–调整数组顺序使奇数位于偶数前面 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 介绍 剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 题目 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。 示例: 输入:nums = [1,2,3,4] 输出:[1,3,2,4] 注:[3,1,2,4] 也是正确的答案之一。提示: 1 <= n

归子莫的博客 480

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

题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 思路: 在要保证变换之后的奇数和偶数的相对位置不变, 想法就是使用i找到第一个奇数的位置, 使用j从i+1开始往后找到第一个奇数 然后将[i,....,j-1]的位置都向右移动一位,再将j位置找出来的奇数移动...

zhangvalue的博客 448
上一篇: 表示数值的字符串(十九)
下一篇: 链表中倒数第k个节点(二十一)
software_Manito
博客等级 码龄8年 6粉丝 90原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值