首页 > 其他 > 详细

LeetcodeSort Array By Parity II

时间:2020-01-21 19:36:22      阅读:70      评论:0      收藏:0      [点我收藏+]

这题做了一个time limit exceeded

public int[] sortArrayByParityII(int[] A) {
LinkedList<Integer> list = new LinkedList<Integer>();
for (int i = 0; i < A.length; i++)
list.add(A[i]);//list.add()返回的是boolean类型 即是否添加成功
for(int i=0;i<list.size();i++)
System.out.print(list.get(i)+" ");
System.out.println();
for (int i = 0, j = 1, k = 0; k < A.length; k++) {
if (list.get(k) % 2 == 0) {//发现得到的数是偶数
A[i] = list.get(k);
i += 2;
} else {
A[j] = list.get(k);
j += 2;
}
}
return A;
}

 

 

Solutions:

public int[] sortArrayByParityII(int[] A) {
int i=0,j=1,n=A.length;
while (i<n&&j<n){
while (i<n&&A[i]%2==0)
{
i=i+2;
} //该位置是偶数的话就一直skip 直到找到第一个在偶数位置的奇数
while (j<n&&A[j]%2==1){
j+=2;
}//该位置是奇数的话就一直skip 直到找到第一个在奇数位置的偶数
swap(A,i,j);
}
return A;
}
public void swap(int [] Array,int i,int j){
int temp=Array[i];
Array[i]=Array[j];
Array[j]=temp;
}

LeetcodeSort Array By Parity II

原文:https://www.cnblogs.com/chengxian/p/12222793.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!