【简单】面试题21. 调整数组顺序使奇数位于偶数前面

21. 调整数组顺序使奇数位于偶数前面 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组的前半部分,所有偶数在数组的后半部分。[3,1,2,4] 也是正确的答案之一。每次向右移动一位,直到遍历完整个数组。指向当前最后一个奇数的下一个位置。接下来,我们从左到右遍历数组,当。是奇数时,我们将其与。 阅读详情

【题目】
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。
来源:leetcode
链接:https://leetcode-cn.com/problems/diao-zheng-shu-zu-shun-xu-shi-qi-shu-wei-yu-ou-shu-qian-mian-lcof/
【示例】
输入:nums = [1,2,3,4]
输出:[1,3,2,4]
注:[3,1,2,4] 也是正确的答案之一
【需要辅助空间】

class Solution {
public:
    vector<int> exchange(vector<int>& nums) {
        int len=nums.size(),jishupos=0;`在这里插入代码片`
        vector<int> oushu;
        //奇数在前 偶数在后
        for(int i=0;i<len;i++)
            if(nums[i]%2==0){
                oushu.push_back(nums[i]);
            }else{
                nums[jishupos++]=nums[i];
            }        
        for(auto x:oushu)
            nums[jishupos++]=x;            
        return nums;
    }
};

【不需要辅助空间,在原空间上求解】

class Solution {
public:
    vector<int> exchange(vector<int>& nums) {
        int len=nums.size(),jishupos=0;        
        //奇数在前 偶数在后
        for(int i=0,j=len-1;i<=j;i++)
            if(nums[i]%2==0){//偶数
                while(nums[j]%2==0&&j>i)
                    j--;
                swap(nums[i],nums[j--]);
            }
        return nums;
    }
};

【两组辅助空间】

class Solution {
public:
    vector<int> exchange(vector<int>& nums) {
        vector<int> jishu,oushu;
        for(int i=0;i<nums.size();i++)
            if(nums[i]%2==0)
                oushu.push_back(nums[i]);
            else
                jishu.push_back(nums[i]);
        jishu.insert(jishu.end(),oushu.begin(),oushu.end());
        return jishu;
    }
};

【知识点】
如何往一个vector数组中整体加入另一个vector数组

vector<int> v1,v2;
v1.insert(v1.end(),v2.begin(),v2.end());
GPS从入门到放弃(一) --- GPS基础原理 GPS从入门到放弃(一) — GPS基础原理 GPS,全称Global Positioning System,已经广泛应用于我们的日常生活中了,现在的智能手机 里都会自带GPS定位功能。这是一个美国的全球定位系统,虽然我们现在也有北斗了,但毕竟GPS搞的早,所以先从它开始研究起。 整个GPS系统分三大部分: 地面站 卫星 接收机 地面站负责监控。它们通过接收、测量各个卫星信号,计算卫星的运行轨... 阅读详情

相关推荐

ERA5获取的风场数据转换为.dfs2文件

ERA5获取风场数据的具体步骤可以参考下面的文章下载好后应该是.nc格式的文件,想要读取或者转换成其他格式的文件可以安装下面步骤,本文介绍如何转换为.dfs2文件。

我的博客 1460

【Python】【难度:简单】Leetcode 面试题21. 调整数组顺序使奇数位于偶数前面

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。 示例: 输入:nums =[1,2,3,4] 输出:[1,3,2,4] 注:[3,1,2,4] 也是正确的答案之一。 提示: 1 <= nums.length <= 50000 1 <= nums[i] <= 10000 来源:力扣(...

thomashhs12的博客 164

Hopf振荡器在机器人步态控制里到底怎么用?一个CPG仿生案例说清楚

本文深入解析了Hopf振荡器在机器人步态控制中的实际应用,通过CPG仿生案例详细展示了从数学方程到关节指令的完整流程。重点探讨了Hopf振荡器的极限环稳定性、参数调节技巧及自适应控制策略,为机器人运动控制提供了高效解决方案。

weixin_29284657的博客 203

剑指offer 面试题21. 调整数组顺序使奇数位于偶数前面 [简单]

我的解题: 1.使用双指针,一个从前遍历,一个从后遍历,将前面的偶数与后面的奇数换位置 话说可以用swap函数,,,, 在i,j自增的时候可以用while循环 class Solution { public: vector<int> exchange(vector<int>& nums) { int i=0; i...

Vermouth_Su的博客 230

Windows下Python调用D435i相机避坑指南:从SDK版本选择到RealSense Viewer报错解决

本文详细介绍了在Windows环境下使用Python调用Intel D435i相机的完整避坑指南。重点解决了SDK版本选择问题,推荐使用稳定的Intel RealSense SDK 2.54.2版本,并提供了从环境配置、常见报错解决到实际应用案例的全流程实践指导,帮助开发者高效完成相机部署与开发。

palm99的专栏 925

别再踩坑了!QT5.15.2配置Android开发环境保姆级避坑指南(含Java8、SDK Tools版本选择)

本文提供QT5.15.2配置Android开发环境的详细避坑指南,重点解决版本锁定、SDK工具选择和QtCreator配置等常见问题。通过实测推荐的Java8、Android SDK Tools版本及NDK配置,帮助开发者高效完成环境搭建,避免隐性冲突和配置失败。

weixin_42537919的博客 240

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

题目1:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。 如果不考虑时间复杂度,最简单的思路应该是从头扫描这个数组,每碰到一个偶数时,拿出这个数字,并把位于这个数字后面的所有的数字往前面挪动一位。挪完之后在数组的末尾有一个空位,这时把该偶数放入这个空位。由于每碰到一个偶数就需要移动O(n)个数字,因此总的时间复杂度是O()。...

Java学习 5999

MOLDFLOW 2012模流分析基础到实战视频教程

├ 1第一讲MF软件安装与界面定制及模流前期准备工作及分析流程介绍 ├ 2第二讲MF建模工具条命令讲解与图层的运用 ├ 3第三讲MF网格类型与适应范围及网格划分、诊断、修复与统计 ├ 4第四讲MF中CAD doctor 模块对导入模型的修复方法与实例 ├ 5第五讲MF中常见各种流道浇口及水路的建模方法与外部导入方法上 ├ 6第六讲MF产品模型导入CAD DOCTOR与修复 ├ 7第七讲MF分析序列设定与网格的划分与诊断及修复 ├ 8第八讲MF材料选择与成型工艺参数设定 ├ 9第九讲MF创建浇注系统:主流道、

QQ_1987083845的博客 2546

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

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

TrueDei 1524

Spring Boot Admin 完整教程

SpringBootAdmin是一个用于管理和监控SpringBoot应用的Web工具,提供健康检查、性能指标、日志管理等核心功能。系统由AdminServer(管理服务器)和AdminClient(客户端)组成,通过Actuator端点收集数据。配置需添加Maven/Gradle依赖,通过@EnableAdminServer注解启动服务端,客户端需配置注册信息。支持UI自定义、安全认证(基本/OAuth2)、多种通知方式(邮件/Slack)及与Eureka/Consul等服务发现的集成。最佳实践包括分层监

weixin_51040479的博客 2558

C#实现将DataGridView中数据导出到Excel (附完整源码)

C#实现将DataGridView中数据导出到Excel (附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 1589

【C/C++练习题】调整数组顺序使奇数位于偶数前面

《剑指Offer》面试题21:调整数组顺序使奇数位于偶数前面

本末实验室 1149

基于特征模仿的YOLOv5中间层知识蒸馏:原理、实现与实验全解析

目标检测中的模型轻量化是一个关键挑战。本文提出一种基于特征模仿(Feature Imitation)的YOLOv5中间层知识蒸馏方法,通过让学生模型学习教师模型的中间层特征表示,显著提升轻量级检测器的性能。我们将详细阐述蒸馏损失函数的设计、特征对齐策略、训练流程,并提供完整可运行的代码实现。同时,推荐多个适合蒸馏训练的数据集,并通过实验验证方法的有效性。

YOLO 187

剑指offer系列-面试题21-调整数组顺序使奇数位于偶数前面(python)

目录1. 题目2. 分析题意3. 解题思路3.1 常规思路一3.2 常规思路二3.3 常规思路三3.4 更优思路3.5 秒杀offer思路4. 总结 1. 题目 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。 2. 分析题意 从题目中来看,没有说明是否能够使用额外的空间,若能使用额外的空间且不考虑实现的时间复杂度的话,简单遍历就...

besmarterbestronger的博客 1230

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

面试题21. 调整数组顺序使奇数位于偶数前面

题目: 面试题21. 调整数组顺序使奇数位于偶数前面 题解: 代码: public class 面试题21 { public static int[] exchange(int[] nums) { int left = 0; int right = nums.length - 1; while(left < right) { while(left < right && nu

dev_zyx的博客 194

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

剑指offer_面试题21 :调整数组顺序使奇数位于偶数前面( python实现 )

调整数组顺序使奇数位于偶数前面( python实现 ) 一、题目描述 题目:调整数组顺序使奇数位于偶数前面 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。 二、解题思路   暂略。(此处主要作为书中python实现补充) 三、代码实现 def reorderOddEcen(myList): if len(myList...

UCASer 659

剑指Offer对答如流系列 - 调整数组顺序使奇数位于偶数前面

文章目录面试题21:调整数组顺序使奇数位于偶数前面一、题目描述二、问题分析三、问题解答 面试题21:调整数组顺序使奇数位于偶数前面 一、题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。 二、问题分析 最简单的思路是扫描数组,遇到偶数就大动干戈,将后面的数字全部向前移动一位,末尾给这个偶数。不过,你也能感觉到这样效率十分低...

明月沉江春雾晓 785

Leetcode刷题:剑指offer【面试题21 调整数组顺序使奇数位于偶数前面】

文章目录思路 1:常规循环思路 2:交换奇偶数扩展:同类问题解法 【面试题21 调整数组顺序使奇数位于偶数前面】 难度: 简单 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。 Leetcode题目对应位置: 面试题21:调整数组顺序使奇数位于偶数前面 思路 1:常规循环 不考虑时间复杂度,最简单的思路就是从头到尾扫描数组,每碰到一个偶数就取出,把该数后面所有的数字往前挪动一位,然后在最后补上这个偶数。由于需要从头到尾扫描数组,且每次碰到偶

学习 & 分享 ~ 723

Java详解剑指offer面试题21--调整数组的顺序使奇数位于偶数前面

Java详解剑指offer面试题21–调整数组的顺序使奇数位于偶数前面 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 如果可以使用额外的空间,这道题不难。O(n)的空间和O(n)的时间复杂度。思路很简单: 第一次遍历,将奇数存入辅助数组中; 第二次遍历,将偶数存入数组中; 辅助数组的元素覆盖原数组。 package Chap3; import java.util.Arr

快乐李同学的博客 493

剑指offer—21.调整数组顺序使奇数位于偶数前面—分析及代码(Java)

剑指offer——21.调整数组顺序使奇数位于偶数前面——分析及代码[Java]一、题目二、分析及代码1. 辅助数组(1)思路(2)代码(3)结果三、其他 一、题目 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 二、分析及代码 1. 辅助数组 (1)思路 由于牛客网在线编程系...

江南土豆的博客 183

面试题21:调整数组顺序使奇数位于偶数前面

面试题21:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 方法一:数组的引用作为实参O(N) class Solution { public: void reOrderArray(vector<int> &array) { //需要对数组进行...

weixin_43892514的博客 247

【Java】 面试题21:调整数组顺序使奇数位于偶数前面

题目:输入一个人整数数组,实现一个函数来调整该数组中数字的顺序, 使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分 解题思路: 定义两个指针,第一个指针初始化时指向数组的第一个数字,它只向后移动;第二个指针初始化时指向最后一个数字,它只向前移动。两个指针相遇之前,第一个指针总是在第二个指针的前面。如果第一个指针指向的数字是偶数,并且第二个指针指向的数字是奇数,则交换这两个数字。 。。。 ...

小小核桃 403

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

题目要求 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 解题思路 通常情况下,我们会使用两种指针,第一个从头开始遍历,第二个从尾开始遍历,如果前面是偶数,后面是奇数那么进行交换。 直到两个指针相遇。 但是这个思路理有个问题,我们没把法保证奇数和奇数,偶数和偶数之间的相对位置不...

爱喝舒化奶的博客 300

面试题21:调整数组顺序使奇数位于偶数前面

调整数组顺序使奇数位于偶数前面题目描述leetcode 题目描述 所有奇数位于前半部分,偶数位于后半部分 同leetcode leetcode 按奇偶排序数组 给定一个非负整数数组 A,返回一个数组,在该数组中, A 的所有偶数元素之后跟着所有奇数元素。 你可以返回满足此条件的任何数组作为答案。 void sortCore(vector<int>&A, int ...

一只咸鱼的小努力 322

leetcode--面试题21. 调整数组顺序使奇数位于偶数前面

 题目来自LeetCode,链接:面试题21. 调整数组顺序使奇数位于偶数前面。具体描述为:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。  示例: 输入:nums = [1,2,3,4] 输出:[1,3,2,4] 注:[3,1,2,4] 也是正确的答案之一。  这题目挺简单的,就是典型的双指针的题目。用一个left指针从左往右找偶数,用一个right指针从右往左往奇数,然后将两者交换位置即可。时间复杂度为O(n)O(n)O(n),空

JR_Chan的博客 372

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

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

weixin_45453028的博客 275
上一篇: 【简单】922. 按奇偶排序数组 II
下一篇: 如何往一个vector数组中整体加入另一个vector数组
菜菜2022
博客等级 码龄9年 67粉丝 1033原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值