leetcode922-Sort Array By Parity II

题目

给定一个非负整数数组 nums, nums 中一半整数是 奇数 ,一半整数是 偶数 。

对数组进行排序,以便当 numsi 为奇数时,i 也是 奇数 ;当 numsi 为偶数时, i 也是 偶数 。

你可以返回 任何满足上述条件的数组作为答案 。

示例 1:

输入:nums = 4,2,5,7

输出:4,5,2,7

解释:4,7,2,52,5,4,72,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;
	}
}
相关推荐
杨航 AI1 小时前
** AI 面试算法 50 题清单**,不是单纯的 LeetCode 题号列表,而是按照“**考察概率 × 面试价值 × 你当前准备方向**”排序
算法·leetcode·面试
程序员黑豆7 小时前
Java字符串详解
java·前端·ai编程
无我Code7 小时前
开发者-2026年中总结
前端·面试·程序员
m0_720245018 小时前
1543.统计好三元组(简单)
开发语言·算法
To_OC8 小时前
LC 560 和为 K 的子数组:前缀和配哈希表,这对组合我是真的服了
javascript·算法·程序员
EntyIU8 小时前
NFS离线部署
java
hans汉斯9 小时前
《软件工程与应用》期刊推荐&10月版面征稿中
图像处理·人工智能·深度学习·算法·音视频·软件工程
叠层归一研究院9 小时前
AGI 系统(八):符号范畴嵌入函子 — SymCat ↪ C_M107 严格化
c语言·开发语言·人工智能·算法·transformer·agi
其美杰布-富贵-李10 小时前
08 进阶评估指标与算法特定指标
人工智能·算法
.道阻且长.10 小时前
5.LeetCode算法习题讲解--双指针--有效三角形的个数
算法·leetcode·职场和发展