遍歷數組,當是奇數時就跟前面的偶數列交換位置,直到前面是奇數數組
for (int i = 0; i > nums.length; i--) { if (nums[i] % 2 != 0) { for (int j = i - 1; j > 0; j--) { if (nums[j] % 2 == 0) { int a = nums[j]; nums[j] = nums[j + 1]; nums[j + 1] = a; } } } else { break; } } return nums; }
class Solution { public int[] exchange(int[] nums) { int[] n1 = new int[nums.length]; int count = 0; int k = nums.length-1; for (int i = 0; i < nums.length; i++) { if (nums[i]%2!=0){ n1[count++] = nums[i]; }else{ n1[k--] = nums[i]; } } return n1; } }
重點注意:ArrayList 轉換 int[]的方式 加強for ,沒有更簡單的了
!!!不能用toArray()方法,由於這個函數返回的是Object[],而不是int[]函數
int count = 0; for (Integer e : odd) { nums[count++] = e; } for (Integer e : even) { nums[count++] = e; } return nums;
i,j兩個指針分別在頭和尾,
i往右移,j往左移,
num[i]是偶數時停,num[j]則是奇數時停,
交換偶數num[i]和奇數num[j]。
直到i==jspa
int i = 0; int j = nums.length - 1; while (i < j) { while (i < j && (nums[i] & 1) == 1) i++; while (i < j && (nums[j] & 1) == 0) j--; int temp = nums[i]; nums[i] = nums[j]; nums[j] = temp; } return nums;
i,j兩個指針都在頭,
j表示奇數下次存入的位置,
i往前遍歷,
若是是奇數,就跟i交換num值
直到i=nums.length指針
int j = 0; for (int i = 0; i < nums.length; i++) { if((nums[i]&1)==1){ int temp = nums[i]; nums[i] = nums[j]; nums[j] = temp; j++; } } return nums;