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;
	}
}
相关推荐
C雨后彩虹13 分钟前
ConcurrentHashMap入门:高并发场景的 HashMap替代方案
java·数据结构·哈希算法·集合·hashmap
weixin_4250230022 分钟前
Spring boot 2.7.18使用knife4j
java·spring boot·后端
产幻少年25 分钟前
面试题八股
java
wanghowie26 分钟前
01.08 Java基础篇|设计模式深度解析
java·开发语言·设计模式
scx2013100432 分钟前
20251201换根DP总结
算法·动态规划·换根dp
zd20057234 分钟前
STREAMS指南:环境及宿主相关微生物组研究中的技术报告标准
人工智能·python·算法
Data_agent38 分钟前
京东商品价格历史信息API使用指南
java·大数据·前端·数据库·python
TechNomad42 分钟前
排序算法:基数排序算法
算法·排序算法
Knight_AL42 分钟前
Java 17 新特性深度解析:记录类、密封类、模式匹配与增强的 switch 表达式对比 Java 8
java·开发语言
最贪吃的虎1 小时前
Spring Boot 自动装配(Auto-Configuration)深度实现原理全解析
java·运维·spring boot·后端·mysql