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;
	}
}
相关推荐
任子菲阳几秒前
学Java第五十二天——IO流(下)
java·开发语言·intellij-idea
秋深枫叶红几秒前
嵌入式第二十七篇——数据结构——栈
c语言·数据结构·学习·算法
ArabySide2 分钟前
【Java Web】过滤器的核心原理、实现与执行顺序配置
java·spring boot·java-ee
灵犀坠2 分钟前
前端面试&项目实战核心知识点总结(Vue3+Pinia+UniApp+Axios)
前端·javascript·css·面试·职场和发展·uni-app·html
稚辉君.MCA_P8_Java6 分钟前
Gemini永久会员 Java 返回最长有效子串长度
java·数据结构·后端·算法
我超级能吃的15 分钟前
线程池核心原理及使用
java·开发语言
Swift社区19 分钟前
LeetCode 440 - 字典序的第 K 小数字
算法·leetcode·职场和发展
路边草随风19 分钟前
java 实现 flink 读 kafka 写 delta
java·大数据·flink·kafka
逆风局?20 分钟前
后端Web实战(部门管理)——日志技术
java·前端
youngee1120 分钟前
hot100-42二叉树的右视图
算法