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;
	}
}
相关推荐
九转苍翎5 分钟前
Java SE(13)——工具类
java·工具类
手握风云-8 分钟前
动态规划算法的欢乐密码(二):路径问题
算法·动态规划
小马爱打代码10 分钟前
数据结构 - Java 队列
java·数据结构
盖世英雄酱5813635 分钟前
🚀不改SQL,也能让SQL的执行效率提升100倍
java·数据库·后端
前端小巷子39 分钟前
IndexedDB:浏览器端的强大数据库
前端·javascript·面试
Java技术小馆1 小时前
Cursor链接远程服务器实现项目部署
java
用户0595661192091 小时前
深入理解Spring Boot框架:从基础到实践
java·spring·编程语言
Raven100861 小时前
L1G2-OpenCompass 评测书生大模型实践
算法
晴空月明1 小时前
JVM 类加载过程与字节码执行深度解析
java
NAGNIP1 小时前
RAG信息检索-如何让模型找到‘对的知识’
算法