一开始怪自己蠢, 只想到i++,j++的方法. 后来看了题解, 才知道用+=2最方便.
这样这个题目思路比较简单了. 只需要分别找到偶数位和奇数位不合条件的数, 交换即可.
class Solution {
public int[] sortArrayByParityII(int[] A) {
int n = A.length;
int x = 0;
int y = 1;
while(x < n && y < n)
{
while(x < n && A[x]%2 == 0 )
x += 2;
while(y < n && A[y]%2 == 1)
y += 2;
if(x >=n || y>= n)return A;
int t = A[x];
A[x] = A[y];
A[y] = t;
}
return A;
}
}
本文介绍了一种优化的数组排序算法,通过使用+=2的方法快速定位到数组中的奇数位和偶数位,从而实现对数组中奇数和偶数的有效交换。这种方法比传统的i++,j++方法更高效,能够显著提升排序效率。
3588

被折叠的 条评论
为什么被折叠?



