Leetcode905 Sort Array By Parity
Posted 一只桃子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode905 Sort Array By Parity相关的知识,希望对你有一定的参考价值。
public int[] sortArrayByParity(int[] A) {
LinkedList<Integer> list = new LinkedList<Integer>();
for (int i = 0; i < A.length; i++) {
if (A[i] % 2 == 0) {
list.add(A[i]);
}
}
for (int j = 0; j < A.length; j++) {
if (A[j] % 2 == 1)
list.add(A[j]);
}
for (int k = 0; k < A.length; k++) {
A[k] = list.get(k);
}
return A;
}
只打败了百分之5的时间复杂度,而且需要O(n)的空间
方法解析里用到了位置交换,一开始也想到了原地置换,但是没想出来解决办法
dicuss里提出 从第一个元素开始遍历 是奇数的话直接跳过 是偶数的话 则和另一个浮标表示的奇数进行替换
因为前面遍历的时候 走过的都是奇数元素 后面直接把偶数元素换到前面就好了 然后奇数去了后面偶数的位置
偶数的前面都是奇数
这样就完成了替换
public int[] sortArrayByParity(int[] A) {
for(int i=0,j=0;j<A.length;j++){
if(A[j]%2==0){
int temp=A[j];
A[j]=A[i];
A[i]=temp;
i++;
}
}
return A;
}
这样的话只需要遍历一次 大大节省了时间
以上是关于Leetcode905 Sort Array By Parity的主要内容,如果未能解决你的问题,请参考以下文章
leetcode905. Sort Array By Parity
Leetcode905 Sort Array By Parity
Leetcode 905. Sort Array By Parity
[leetcode][easy][Array][905][Sort Array By Parity]