Android面试算法题之拆分元素
.//有一个整数数组,有负数和整数,用一个方法把正负数分开,要求空间复杂度是O(1),时间复杂度是:O(N) /** * 分数组 */ public static void awaylist(){ int a[] = new int[]{5,-2,4,6,-1,3,-9,-8}; int start = 0; int temp = 0; for(int i=0;i<a.length;i++){ if(a[i]>0&&start==0){ continue; }else if(a[i]<0&&start==0){ start = i; }else if(a[i]>0&&start!=0){ //无论怎么样,调换后,start的下个位置一定小于0;所以start++。 temp = a[start]; a[start] = a[i]; a[i] = temp; if(i>start){ start++; } } } for(int i=0;i<a.length;i++){ System.out.println(a[i]); } }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。