leetcode922-Sort Array By Parity 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] 也会被接受。

分析

我们可以用快慢指针来解决这个问题,慢指针永远指向偶数的i,快指针永远指向奇数的i,那么当发生慢指针指向的元素是奇数快指针指向的元素是偶数的时候,交换俩个元素的位置,我们遍历数组也是为了寻找这样的俩个元素

java 复制代码
public class sortArrayByParityII {
	public static void main(String[] args) {
		int[] arr = {4,2,5,7};
		int[] brr = getSort(arr);
		for(int i = 0;i<brr.length;i++) {
			System.out.println(brr[i]);
		}
	}
	public static int[] getSort(int[] arr) {
		int first = 0;
		int second = 1;
		int len = arr.length;
		while(first < len && second < len) {
			if(arr[first] % 2 == 0) {
				first+=2;
			} else if(arr[second] % 2 ==1) {
				second+=2;
			} else {
				int tmp = arr[first];
				arr[first] = arr[second];
				arr[second] = tmp;
			}
		}
		return arr;
	}
}
相关推荐
哎呦没22 分钟前
大学生就业招聘:Spring Boot系统的架构分析
java·spring boot·后端
小飞猪Jay27 分钟前
C++面试速通宝典——13
jvm·c++·面试
Kalika0-039 分钟前
猴子吃桃-C语言
c语言·开发语言·数据结构·算法
编程、小哥哥1 小时前
netty之Netty与SpringBoot整合
java·spring boot·spring
代码雕刻家1 小时前
课设实验-数据结构-单链表-文教文化用品品牌
c语言·开发语言·数据结构
sp_fyf_20241 小时前
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-02
人工智能·神经网络·算法·计算机视觉·语言模型·自然语言处理·数据挖掘
IT学长编程2 小时前
计算机毕业设计 玩具租赁系统的设计与实现 Java实战项目 附源码+文档+视频讲解
java·spring boot·毕业设计·课程设计·毕业论文·计算机毕业设计选题·玩具租赁系统
莹雨潇潇2 小时前
Docker 快速入门(Ubuntu版)
java·前端·docker·容器
杨哥带你写代码2 小时前
足球青训俱乐部管理:Spring Boot技术驱动
java·spring boot·后端
小字节,大梦想2 小时前
【C++】二叉搜索树
数据结构·c++