Leetcode-每日一题【剑指 Offer 21. 调整数组顺序使奇数位于偶数前面】

news2024/10/7 2:26:51

题目

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

示例:

输入:nums = [1,2,3,4]
输出:[1,3,2,4] 
注:[3,1,2,4] 也是正确的答案之一。

提示:

  • 0 <= nums.length <= 50000
  • 0 <= nums[i] <= 10000

解题思路

1.题目要求我们使数组中所有奇数在数组的前半部分,所有偶数在数组的后半部分,我们可以采用双指针来实现。

2.首先我们先设置两个指针,一个指向数组的头,另一个指向数组尾,然后我们用while 循环开始遍历,left 指针用于找出数组中的偶数,right指针用于找出数组中的奇数,然后将两个指针指向的元素进行交换,直到 left 不小于 right,表明我们的数组已经处理结束,我们返回nums即可。

举个例子:以下是数组[1,2,3,4,5,6,7,8]的交换步骤 

代码实现

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

            int temp = nums[left];
            nums[left] = nums[right];
            nums[right] = temp;
        }
        return nums;
    }
}

测试结果

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何改造antd-vue的table支持虚拟列表功能

对于超大数据量的接口来说&#xff0c;如果前端直接一股脑的渲染出来&#xff0c;必然会导致渲染超时、操作卡顿、内存爆表、网页奔溃等情况&#xff0c;因此一般的对于大数据量的列表处理&#xff0c;无非就以下几种方式 采取分页的方式&#xff0c;减少每页的数量 比如每页1…

文旅行业苦“黄牛”久矣,消失的门票到底去哪儿了?

今年年初以来&#xff0c;文化与旅游行业强势复苏&#xff0c;明星演唱会、热门景区及文博科技馆成为了“黄牛党”肆虐的重灾区&#xff0c;高价倒卖票、代抢服务等层出不穷&#xff0c;严重扰乱了文旅票务市场秩序。 如何解决黄牛“顽疾”&#xff0c;成为了文旅行业共同关注…

福布斯发布2023云计算100强榜单,全球流程挖掘领导者Celonis排名17

近日&#xff0c;全球流程挖掘领导者Celonis入选福布斯2023 年云计算 100 强榜单&#xff0c;估值130亿美元&#xff0c;排名第17&#xff0c;Celonis已经是连续三年跻身榜单前20名。 本次榜单由福布斯与Bessemer Venture Partners和Salesforce Ventures联合发布&#xff0c;旨…

GPU虚拟化理解包含直通,k8s安装,GPU-manager

什么是VGPU? vGPU&#xff0c;即真正意义上的GPU虚拟化方案&#xff0c;就是将一块GPU卡的计算能力进行切片&#xff0c;分成多个逻辑上虚拟的GPU&#xff0c;以vGPU为单位分配GPU的计算能力&#xff0c; 并将单块GPU卡分配给多台虚拟机使用&#xff0c;使得虚拟机能够运行3D…

【C++】开源:gflags命令行参数解析库配置使用

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍gflags命令行参数解析库配置使用。 无专精则不能成&#xff0c;无涉猎则不能通。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下&…

数字孪生工厂分享交流方案[53页PPT]

导读&#xff1a;原文《》&#xff08;获取来源见文尾&#xff09;&#xff0c;本文精选其中精华及架构部分&#xff0c;逻辑清晰、内容完整&#xff0c;为快速形成售前方案提供参考。 《“十四五”智能制造发展规划》-----推动数字孪生、人工智能、5G、大数据、区块链、虚拟现…

Linux操作系统安装Nodejs配置淘宝加速教程教程

文章目录 下载软件包配置环境变量重新加载环境变量使其生效配置淘宝加速 下载软件包 从https://nodejs.cn/download/下载所需软件包&#xff0c;也可以复制链接地址在Linux终端中使用wget命令下载&#xff0c;X86设备使用**Linux 二进制文件 (x64)**版本 使用wget命令下载node…

又一个不可错过的编程大模型来了让你惊呼“码农人生”不虚此行

继Stable Diffusion爆火之后&#xff0c;StabilityAI近期又放大招&#xff0c;推出了号称是革命性的编程大模型StableCode。StableCode是其首款用于编码的LLM生成式AI产品&#xff0c;该产品旨在帮助程序员完成日常工作。目前已发布的版本为StableCode-Completion-Alpha-3B&…

10 年 2023 大目标检测模型总结

对象检测示例 “物体检测是计算机视觉中最令人兴奋和最具挑战性的问题之一&#xff0c;深度学习已成为解决这一问题的有力工具。 — 陈良杰博士 OBJECT检测是计算机视觉中的一项基本任务&#xff0c;涉及识别和定位图像中的对象。深度学习彻底改变了对象检测&#xff0c;可以更…

atx2环境搭建

1. 安装python3.9.16版本 Index of /ftp/python/3.9.16/ 在执行该命令前&#xff0c;建议先清理下brew的缓存 brew cleanup 如遇Python环境报错 Run Configuration Error: Please specify a script name 参考&#xff1a;https://blog.csdn.net/weixin_43919570/article/d…

Redis——通用命令介绍

Redis官方文档 redis官方文档 核心命令 set 将key和value存储到Redis中&#xff0c;key和value都是字符串 set key valueRedis中不区分大小写&#xff0c;字符串类型也不需要添加单引号或者双引号 get 根据key读取value&#xff0c;如果当前key不存在&#xff0c;则返回…

opencv基础58 傅里叶变换cv2.dft()->(图像增强、图像去噪、边缘检测、特征提取、图像压缩和加密)

傅里叶变换 是啥&#xff1f; 傅里叶变换是以法国数学家让-巴蒂斯特约瑟夫傅里叶&#xff08;Jean-Baptiste Joseph Fourier&#xff09;的名字命名的&#xff0c;以纪念他对这一数学工具的贡献。傅里叶生活在18世纪末和19世纪初&#xff0c;他是一位多才多艺的科学家&#xff…

手撕数据结构之栈+例题

目录 一、栈的概念及结构 二、栈的头文件及基本框架 三、接口实现 1、对栈的初始化 2、栈的销毁 3、入栈操作 4、出栈操作 5、判断栈是否为空 6、返回栈顶元素 7、遍历栈 四、有效的括号 - 力扣&#xff08;LeetCode&#xff09; 题目描述&#xff1a; 思路&#xff…

缓存平均的两种算法

引言 线边库存物料的合理性问题是物流仿真中研究的重要问题之一,如果线边库存量过多,则会对生产现场的布局产生负面影响,增加成本,降低效益。 写在前面 仿真分析后对线边Buffer的使用情况进行合理的评估就是一个非常重要的事情。比较关心的参数包括:缓存位最大值…

Kubernetes集群部署(第二篇)

安装flannel Master 节点NotReady 的原因就是因为没有使用任何的网络插件&#xff0c;此时Node 和Master的连接还不正常。目前最流行的Kubernetes 网络插件有Flannel、Calico、Canal、Weave 这里选择使用flannel。 flannel提取链接&#xff1a;https://pan.baidu.com/s/1fLJKh…

GB28181智慧可视化指挥控制系统之执法记录仪设计探讨

什么是智慧可视化指挥控制系统&#xff1f; 智慧可视化指挥控制平台通过4G/5G网络、WIFI实时传输视音频数据至指挥中心&#xff0c;特别是在有突发情况时&#xff0c;可以指定一台执法仪为现场视频监控器&#xff0c;实时传输当前画面到指挥中心&#xff0c;指挥中心工作人员可…

JVM笔记 —— 出现内存溢出错误时时如何排查

一、出现内存溢出的几种情况 内存溢出错误分为StackOverflowError和OutOfMemoryError&#xff0c;前者是栈中出现溢出&#xff0c;后者一般是堆或方法区出现溢出&#xff0c;简称OOM 1. 栈溢出 StackOverflowError 栈溢出一般都是因为没有正确的结束递归导致的&#xff0c;无…

【Pyhthon实战】Python对全校电费查询采集并可视化分析

前言 今天&#xff0c;我来说说怎么抓取宿舍电费的过程。我们学校是在完美校园交电费的&#xff0c;我们可以不用取抓包完美校园的数据接口&#xff0c;我们可以直接登录学校的一卡通网站&#xff0c;每个学校都有&#xff0c;大家可以自己找找&#xff0c;这里我为什么要抓包呢…

新华日报-北京晚报-天津日报-投稿要求

新华日报-北京晚报-天津日报-投稿要求 报纸出版快 稳妥 价优 《中国教育报》1800字符1-3个月见报 《中国教师报》1800字符1-3个月左右见报 《光明日报》普通版 1500字符左右 各科 2个月见报 《经济日报》普通版 1500字符 1-3个月见报 《法治日报》普通版 2000字符 3个月见报…

基于子口袋的分子生成

生成与靶蛋白具有高结合亲和力的分子&#xff08;也称为基于结构的药物设计&#xff0c;structure-based drug design&#xff09;是药物发现中的一项基本且具有挑战性的任务。最近&#xff0c;深度生成模型在生成以蛋白质口袋为条件的3D分子方面取得了显著成功。然而&#xff…