トピック:
整数配列を入力し、すべての奇数が配列の前半にあり、すべての偶数が配列の後半にあるように、配列内の数値の順序を調整する関数を実装します。
例:
入力:nums = [1,2,3,4]
出力:[1,3,2,4]
注:[3,1,2,4]も正解の1つです
分析:方法1:元の配列をトラバースし、新しい配列の最初と最後に結果を順番に保存します。方法2:最初に元の配列をトラバースして奇数を新しい配列に格納し、次に元の配列をトラバースして偶数を新しい配列に格納します。
ここにいる友人から「i ++と++ i」について疑問があるかもしれません。関連する知識はここで確認できます:https://blog.csdn.net/qq_44624536/article/details/115125198
方法1:
public int[] exchange(int[] nums) {
int[] a=new int[nums.length];
int start=0;
int end=nums.length-1;
for(int i=0;i<nums.length;i++){
if(nums[i]%2==1)
a[start++]=nums[i];
else
a[end--]=nums[i];
}
return a;
}
方法2:
public int[] exchange(int[] nums) {
int a[]=new int[nums.length];
int start=0;
for(int i=0;i<nums.length;i++){
if(nums[i]%2==1)
a[start++]=nums[i];
}
for(int i=0;i<nums.length;i++){
if(nums[i]%2!=1)
a[start++]=nums[i];
}
return a;
}