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;
	}
}
相关推荐
机器学习之心1 分钟前
基于BiGRU-Attention的轴承剩余寿命预测(MATLAB实现):从振动信号到RUL曲线的完整闭环
数据结构·算法·matlab·轴承剩余寿命预测·振动信号·bigru-attention
青梅橘子皮1 分钟前
优选算法---专题2(滑动窗口)
数据结构·算法
zww89491115 分钟前
相册印刷项目实战指南:从设计到成品的完整技术流程
java·小程序·eclipse
程序猫.9 分钟前
双指针问题
java·数据结构·算法
拾光Ծ11 分钟前
【MySQL】复合查询、表的连接
java·数据库·sql·mysql
MetaLite15 分钟前
Java通用枚举驱动下拉框-元数据接口与前端契约
java·前端·状态模式
心抵鹊22 分钟前
力扣每日一题:计算右侧小于当前元素的个数(hard)
算法·leetcode
文子越来越强23 分钟前
线程池使用总结
java
50万马克的面包26 分钟前
数据结构:线性表 —— 顺序表与链表完整总结
数据结构·链表
鹿角片ljp28 分钟前
LeetCode 142:环形链表 II |HashSet 保底解 + Floyd 快慢指针找环入口
算法·leetcode·链表