905. 按奇偶排序数组 - 力扣

1. 题目

给你一个整数数组 nums,将 nums 中的的所有偶数元素移动到数组的前面,后跟所有奇数元素。

返回满足此条件的 任一数组 作为答案。

2. 示例

3. 分析

开辟一个数组res用来保存操作过后的元素。第一次遍历数组只插入偶数,第二次遍历数组只插入奇数。

class Solution {
public:vector<int> sortArrayByParity(vector<int>& nums) {vector<int> res;for (int i = 0; i < nums.size(); i++) {if (num % 2 == 0) res.push_back(num[i]);}for (int i = 0; i < nums.size(); i++){if (num % 2 == 1) res.push_back(num[i]);}return res;}
};

能不能只遍历一次数组?可以滴。遇到偶数,替换到res数组偶数区间,即左侧区间;遇到奇数,替换到res数组奇数区间,即右侧区间。

class Solution {
public:vector<int> sortArrayByParity(vector<int>& nums) {int n = nums.size();vector<int> res(n);int left = 0, right = n - 1;for (int i = 0; i < n; i++) {if (num[i] % 2 == 0) res[left++] = num[i];else res[right--] = num[i];}return res;}
};

前面两种方法都需新开辟一个数组,那能不能不开辟而是原地进行替换?那是可以滴。

定义两个指针,左指针跳过偶数寻找奇数,右指针跳过奇数寻找偶数,交换左右指针元素。

class Solution {
public:vector<int> sortArrayByParity(vector<int>& nums) {int n = nums.size();int left = 0, right = n - 1;while(left < right){while(left < right && nums[left] % 2 == 0) left++;while(left < right && nums[right] % 2 == 1) right--;swap(nums[left++], nums[right--]);}return nums;}
};

或者只用一个指针 j 用来表示元素为奇数。遍历数组寻找到偶数后,交换二者元素即可。思想上感觉都差不多=.= ,只是更简洁~~~

class Solution {
public:vector<int> sortArrayByParity(vector<int>& nums) {int n = nums.size();int j = 0;for(int i = 0; i < n; i++){if(nums[i] % 2 == 0) swap(nums[i], nums[j++]);}return nums;}
};

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

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

相关文章

查分小程序怎么用?

在教育信息化的浪潮中&#xff0c;一种新型的成绩管理工具成绩发布小程序&#xff0c;正逐渐成为教师的得力助手。简化了成绩发布流程&#xff0c;还提高了信息的安全性和便捷性。 查分小程序的使用方法非常直观。只需在威信中搜索并打开易查分小程序&#xff0c;教师按照提示注…

IP协议说明

文章目录 前言一、IP协议的简介二、IP数据报1.IP 数据报结构2.IP 数据报的分片解析3.IP 数据报的分片重装 三、IP 数据报的输出四、IP 数据报的输入 前言 IP 指网际互连协议&#xff0c; Internet Protocol 的缩写&#xff0c;是 TCP/IP 体系中的网络层协议。设计 IP 的目的是…

SQL数据分析常用函数

SQL 中有许多常用的函数&#xff0c;可以用于处理和操作数据。以下是一些常见的SQL 函数&#xff1a; 1. 字符串函数&#xff1a; CONCAT(str1, str2, …): 用于把多个文本字符串合并成一个长字符串(参数中有null时返回null)。 select concat(一起,学, SQL); -- 输出结果:一…

RPC 框架

RPC 全称 Remote Procedure Call——远程过程调用。 RPC技术简单说就是为了解决远程调用服务的一种技术&#xff0c;使得调用者像调用本地服务一样方便透明。RPC是一种通过网络从远程计算机程序上请求服务&#xff0c;不需要了解底层网络技术的协议。 集群和分布式 集群&…

基于Freertos的工训机器人

一. 工训机器人 V1 1. 实物 将自制的F4开发板放置车底板下方&#xff0c;节省上方空间&#xff0c;且能保证布线方便整齐。 2. SW仿真 使用SolidWorks进行仿真&#xff0c;且绘制3D打印件。 工训仿真 3.3D打印爪测试 机械爪测试 二. 工训机器人 V2 1. 实物 工训机器人V2不同于…

国密协议网关与IPSec VPN技术:保障数据安全传输的新途径

国密协议网关IPSec VPN隧道技术是一种结合了国家密码管理局&#xff08;简称国密&#xff09;的加密算法和IPSec VPN隧道技术的安全通信解决方案。 IPSec&#xff08;Internet Protocol Security&#xff09;是互联网协议安全的一种标准&#xff0c;用于保护网络通信的安全性和…

共筑信创新生态:DolphinDB 与移动云 BC-Linux 完成兼容互认

近日&#xff0c;DolphinDB 数据库软件 V2.0 与中国移动通信集团公司的移动云天元操作系统 BC-Linux 完成兼容性适配认证。经过双方共同严格测试&#xff0c;DolphinDB 性能及稳定性等各项指标表现优异&#xff0c;满足功能及兼容性测试要求。 此次 DolphinDB 成功通过移动云 B…

微服务-Nacos-安装-集成SpringBoot

微服务-SpringCloud-ALibaba-Nacos Nacos 是阿里巴巴推出的 SpringCloud的组件 官网:什么是 Nacos 主要是为了解决微服务的架构中 服务治理的问题服务治理就是进行服务的自动化管理&#xff0c;其核心是服务的注册与发现。 服务注册&#xff1a;服务实例将自身服务信息注册…

使用BigDecimal定义的实体类字段返回给前台的是字符串类型,如何返回数字类型

目录 前言&#xff1a; 问题现象&#xff1a; 解决方法&#xff1a; 效果&#xff1a; 前言&#xff1a; 做项目的时候数据字段通常定义为bigdecimal类型&#xff0c;方便进行运算&#xff0c;但是发现接口调用后返回给前台的是字符串&#xff0c;这篇博文讲的是如何将定义…

1109 擅长C(测试点0,1,2,3)

当你被面试官要求用 C 写一个“Hello World”时&#xff0c;有本事像下图显示的那样写一个出来吗&#xff1f; ..C.. .C.C. C...C CCCCC C...C C...C C...C CCCC. C...C C...C CCCC. C...C C...C CCCC. .CCC. C...C C.... C.... C.... C...C .CCC. CCCC. C...C C...C C...C C…

【香橙派 AIpro】OrangePi AIpro :教育、机器人、无人机领域的超级AI大脑,华为昇腾处理器驱动的AI开发板新标杆

【OrangePi AIpro&#xff1a;教育、机器人、无人机领域的超级AI大脑&#xff0c;华为昇腾处理器驱动的AI开发板新标杆】 文章目录 一、开箱与初印象1. 初印象2. 上手开机3. 安装和运行 TightVNC 远程桌面3.1. 安装 TightVNC 服务器3.2. 启动 VNC 服务器3.3. 在 Windows 上使用…

Java 字符串处理

Java 是一种广泛使用的编程语言&#xff0c;而字符串处理是 Java 编程中非常重要的一部分。Java 提供了丰富的字符串操作功能&#xff0c;通过 String 类和 StringBuilder、StringBuffer 类来处理字符串。 一、Java 字符串的创建 1. 使用字面量 在 Java 中&#xff0c;字符串…

应急响应-网页篡改-技术操作只指南

初步判断 网页篡改事件区别于其他安全事件地明显特点是&#xff1a;打开网页后会看到明显异常。 业务系统某部分出现异常字词 网页被篡改后&#xff0c;在业务系统某部分网页可能出现异常字词&#xff0c;例如&#xff0c;出现赌博、色情、某些违法APP推广内容等。2019年4月…

Oracle创建用户时提示ORA-65096:公用用户名或角色名无效

Oracle创建用户时提示“ORA-65096&#xff1a;公用用户名或角色名无效” 如下图所示&#xff1a; 解决方法&#xff1a;在新增用户名前面加上C##或者c##就可以解决无效问题&#xff0c;具体什么原因还不清楚&#xff0c;需要再研究一下。

一机实现All in one,NAS如何玩转虚拟机!

常言道&#xff0c;中年男人玩具有三宝 充电器、路由器、NAS 你问我NAS的魔力在哪里&#xff1f; 一机实现All in one洒洒水啦 那NAS又如何玩转虚拟机呢? 跟我来 0基础也能轻松get! NAS如何玩转虚拟机 铁威马NAS的VirtualBox的简单易用&#xff0c;可虚拟的系统包括Win…

python核心编程(二)

python面向对象 一、基本理论二、 面向对象在python中实践2.1 如何去定义类2.2 通过类创建对象2.3 属性相关2.4 方法相关 三、python对象的生命周期,以及周期方法3.1 概念3.2 监听对象的生命周期 四、面向对象的三大特性4.1 封装4.2 继承4.2.1 概念4.2.1 目的4.2.2 分类4.2.3 t…

cgicc开发(文件上传)

//cgicc文件上传封装 void UploadSoftware() {// 初始化CGIC环境Cgicc cgi;// 获取上传的文件file_iterator fileIter cgi.getFile("button_browse"); //from表单中,输入为文件属性(typefile)的name属性值if (fileIter cgi.getFiles().end()){ #if (DEBUG true)co…

软件设计师中级 重点 笔记

文章目录 下午题目网络DNS域名解析分类&#xff1a;域名协议简介网络设备 算法软件工程实体联系图&#xff08;E-R图&#xff09; 其它 下午题目 数据流图补充原则 22年下半年真题 更早-真题大全 答题技巧 网络 DNS域名解析分类&#xff1a; 递归查询的顺序&#xff1a;1.本…

电脑重要文件如何加密保护?教你两种方法

加密是保护电脑重要文件的常见方法&#xff0c;可以有效避免文件数据泄露。那么&#xff0c;电脑重要文件该如何加密保护呢&#xff1f;下面小编就来教你两种方法&#xff0c;帮助你解决文件安全问题。 超级加密3000 超级加密3000是一款专业的电脑数据加密软件&#xff0c;可以…

流量被劫持?不怕,轻松Get 防“窃”技巧!

流量劫持是一种恶意行为&#xff0c;攻击者会在用户访问网站时&#xff0c;将其流量重定向到第三方站点上&#xff0c;导致用户访问的不是原始目标站点。这种行为不仅会影响网站的品牌形象&#xff0c;还会导致用户流失和信息泄露等严重后果。本文将探讨网站如何应对流量劫持。…