leetcode 922. 按奇偶排序数组 II
- 题目描述
- 解题思路
- 执行结果
题目描述
-
按奇偶排序数组 II
给定一个非负整数数组 nums, nums 中一半整数是 奇数 ,一半整数是 偶数 。
对数组进行排序,以便当 nums[i] 为奇数时,i 也是 奇数 ;当 nums[i] 为偶数时, i 也是 偶数 。
你可以返回 任何满足上述条件的数组作为答案 。
示例 1:
输入:nums = [4,2,5,7] 输出:[4,5,2,7] 解释:[4,7,2,5],[2,5,4,7],[2,7,4,5] 也会被接受。 示例 2:
输入:nums = [2,3] 输出:[2,3]
提示:
2 <= nums.length <= 2 * 104 nums.length 是偶数 nums 中一半是偶数 0 <= nums[i] <= 1000
进阶:可以不使用额外空间解决问题吗?
解题思路
法1
进阶:可以不使用额外空间解决问题
方法1:双指针\
-
定义两个指针,一个遍历奇数位一个遍历偶数位
-
分别找出两个不满足奇数对应奇数,偶数对应偶数的条件时,交换两个指针的对应数值,
-
循环遍历数组,输出结果
这个实现的时间复杂度也是 O(n),其中 n 是数组的长度。这种方法只需要遍历一次数组,并且没有使用额外的空间,满足了题目的要求。
-
时间复杂度(O(n)) -
空间复杂度(O(1))
执行结果
法1
我们使用两个指针 evenIndex 和 oddIndex 分别表示奇数索引和偶数索引。我们通过遍历数组并比较当前元素的奇偶性来进行交换操作,直到两个指针超出数组的范围。
如果 nums[evenIndex] 是偶数,则说明它已经在正确的位置上,我们将 evenIndex 增加 2。
如果 nums[oddIndex] 是奇数,则说明它已经在正确的位置上,我们将 oddIndex 增加 2。
如果 nums[evenIndex] 是奇数,且 nums[oddIndex] 是偶数,说明它们不满足奇数对应奇数、偶数对应偶数的条件,我们将它们交换,并将 evenIndex 和 oddIndex 分别增加 2。
最后,返回经过排序的数组 nums。
func sortArrayByParityII(nums []int) []int {
n := len(nums)
evenIndex := 0
oddIndex := 1
for evenIndex < n && oddIndex < n {
if nums[evenIndex]%2 == 0 {
evenIndex += 2
} else if nums[oddIndex]%2 != 0 {
oddIndex += 2
} else {
nums[evenIndex], nums[oddIndex] = nums[oddIndex], nums[evenIndex]
evenIndex += 2
oddIndex += 2
}
}
return nums
}
执行结果:
执行用时: 12 ms , 在所有 Go 提交中击败了 98.74% 的用户 内存消耗: 6.2 MB , 在所有 Go 提交中击败了 91.20% 的用户 通过测试用例: 61 / 61 炫耀一下:
本文由 mdnice 多平台发布
相关文章:
leetcode 922. 按奇偶排序数组 II
题目描述解题思路执行结果 leetcode 922. 按奇偶排序数组 II. 题目描述 按奇偶排序数组 II 给定一个非负整数数组 nums, nums 中一半整数是 奇数 ,一半整数是 偶数 。 对数组进行排序,以便当 nums[i] 为奇数时,i 也是 奇数 &#…...
Unity四叉树地图
当使用Unity构建大规模的游戏地图或场景时,使用四叉树数据结构可以提高性能和效率。四叉树是一种基于分割的数据结构,将空间划分为四个相等的子区域,并以递归方式构建树结构。在游戏开发中,四叉树常用于空间分区、碰撞检测和可视化…...
【unity插件】OpenFracture插件实现物体破裂和切割
插件地址 https://github.com/Mustenaka/OpenFracture 使用注意事项 1.如果要导入自定义网格,则必须在导入设置中将“启用读/写”设置为 true。否则,您将收到错误。 2.网格必须是非相交和封闭的。否则,重新三角测量将失败。 上面描绘的是凳子的线框模型。注意横杆如何与…...
Spring Security实现登录
前言 Spring Security是Spring框架下的一个用于身份验证和授权的框架,它可以帮忙管理web应用中的用户认证、授权以及安全性问题。本文将介绍如何使用Spring Security实现用户登录功能,本文主要包括以下内容: 环境准备Spring Security核心概…...
小狐狸ChatGPT付费创作系统1.9.7独立版 + H5端 + 小程序前端增加AI绘画+GPT4接口
小狐狸ChatGPT 1.9.7独立版经播播资源测试了版本比较,本版核心增加了GPT4.0接口功能,小程序端内置了AI绘画功能。体验下来问答速度感觉体验更好。小程序端有更新请对应开发工具更新上传,本版无开源端。播播资源提供的安装教程详见下方&#x…...
双目测距联合YOLOv8 项目总结
代码贴:双目测距--5 双目相机 联合 YOLOv8_爱钓鱼的歪猴的博客-CSDN博客 0、图片筛选 可以用matlab,对双目图像做个一个筛选,也就是做双目标定。 熟悉matlab的小伙伴完全可以用matlab做双目标定,我是没咋接触过不知道怎么导出标定结果&#…...
Windows提权:利用MSSQL数据库,Oracle数据库
目录 MSSQL提权:使用xp_cmdshell进行提权 MSSQL:使用sp_OACreate进行提权 MSSQL:使用沙盒提权 Oracle提权:工具一把梭哈 总结 MSSQL在Windows server类的操作系统上,默认具有system权限。 MSSQL提权:使…...
linux常见的二十多个指令
目录 一、指令的概念 二、28个常见的指令 ⭐2.1 ls指令 ⭐2.2 pwd指令 ⭐2.3 cd指令 ⭐2.4tree指令 ⭐2.5 mkdir指令 ⭐2.6 touch指令 ⭐2.7 rmdir指令 ⭐2.8 rm指令 ⭐2.9 clear指令 ⭐2.10 man指令 ⭐2.11 cp指令 ⭐2.12 mv指令 ⭐2.13 cat指令(适…...
内蒙古自治区住房和城乡建设分析及解决方案
安科瑞 徐浩竣 江苏安科瑞电器制造有限公司 zx acrelxhj 摘 要:为深入贯彻落实《国务院办公厅关于印发新能源汽车产业发展规划(2021—2035年)的通知》(国办发 ﹝2020﹞39号)、《国家发展改革委等部门关于进一步提升…...
JavaEE进阶5/25(属性注入)
目录 1.更简单的存取Spring对象 2.获取Bean对象(对象装配)DI 3. Resource注入 4.Resource注入和Autowired注入的区别 1.更简单的存取Spring对象 2.获取Bean对象(对象装配)DI 对象装配(对象注入)有三种方…...
【Java学习记录-4】相关名词和概念记录(持续更新)
目录 1 注解2 包3 权限修饰符4 状态修饰符1. final2. static 5. 多态6.抽象类7.接口 1 注解 Override是一个注解,可以帮助我们检查重写方法的方法声明的正确性 注意: 私有方法不能被重写(父类私有成员子类是不能继承的)子类方法…...
《程序员面试金典(第6版)》面试题 16.25. LRU 缓存(自定义双向链表,list库函数,哈希映射)
题目描述 设计和构建一个“最近最少使用”缓存,该缓存会删除最近最少使用的项目。缓存应该从键映射到值(允许你插入和检索特定键对应的值),并在初始化时指定最大容量。当缓存被填满时,它应该删除最近最少使用的项目。 题目传送门:…...
kong网关启用jwt认证插件
认证流程: 1、创建一个用户 2、生成jwt的所需要的key和密钥 3、在https://jwt.io/的生成jwt token 4、启用jwt插件 5、发送请求的时候携带jwt的token信息 官方指导:https://docs.konghq.com/hub/kong-inc/jwt/configuration/examples/ 一、创建一个新的…...
day12 - 图像修复
在图像处理的过程中,经常会遇到图像存在多余的线条或者噪声的情况,对于这种情况我们会先对图像进行预处理,去除掉对图形内容有影响的噪声,在进行后续的处理。 本节实验我们介绍使用图像膨胀来处理图形的多余线条,进行…...
1720_Linux学习中的问题处理
全部学习汇总:GreyZhang/little_bits_of_linux: My notes on the trip of learning linux. (github.com) 这个有点学习的方法论的意思,画个滋味导图顺便整理一下。 遇到问题的时候,解决的方法大致有3中,而针对学习的建议有一部分是…...
七人拼团系统开发模式详解
七人拼团是最近兴起的一个模式,它通过更人性化的奖励机制,将产品利润最大化让利给参与拼团的用户,达到促进用户主动积极裂变和团队平台引流提升销量的效果,下面就来详细说一下这个模式。 七人拼团最大的特点,就是结合了…...
CPU性能优化:分支预测
条件跳转引起的控制冒险虽然也可以通过在流水线中插入空泡来避免,但是当流水线很深时,需要插入更多的空泡。一个20级的流水线为例,如果一条指令需要上一条指令的执行结束才能执行,则需要在这两条指令之间插入19个空泡,…...
过滤器Filter,拦截器Interceptor
过滤器Filter 快速入门 详情 登录校验-Filter package com.itheima.filter;import com.alibaba.fastjson.JSONObject; import com.itheima.pojo.Result; import com.itheima.utils.JwtUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.util.StringUtils…...
kafka整理
kafka整理 一、kafka概述 kafka是apache旗下一款开源的顶级的消息队列的系统, 最早是来源于领英, 后期将其贡献给apache, 采用语言是scala.基于zookeeper, 启动kafka集群需要先启动zookeeper集群, 同时在zookeeper记录kafka相关的元数据 kafka本质上就是消息队列的中间件产品…...
为什么有些情况下需要重写equals()和hashCode()方法?
目录 方法作用实战案例 方法作用 equals():判断对象是否相等,比如判断是否能放入Set集合中 情况1:没有重写equals()方法:由于所有类的默认基类都是Object类,所以默认使用Object类的equals()方法,那就是对象…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...
【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...
EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...
【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...
docker 部署发现spring.profiles.active 问题
报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...
4. TypeScript 类型推断与类型组合
一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式,自动确定它们的类型。 这一特性减少了显式类型注解的需要,在保持类型安全的同时简化了代码。通过分析上下文和初始值,TypeSc…...
怎么让Comfyui导出的图像不包含工作流信息,
为了数据安全,让Comfyui导出的图像不包含工作流信息,导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo(推荐) 在 save_images 方法中,删除或注释掉所有与 metadata …...
Ubuntu Cursor升级成v1.0
0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开,快捷键也不好用,当看到 Cursor 升级后,还是蛮高兴的 1. 下载 Cursor 下载地址:https://www.cursor.com/cn/downloads 点击下载 Linux (x64) ,…...
