奇偶陣列分割,原地進行

2021-07-26 06:06:05 字數 652 閱讀 1239

分割乙個整數陣列,使得奇數在前偶數在後。

給定 [1, 2, 3, 4],返回 [1, 3, 2, 4]。

1.原地分割,不開闢新的空間,使用類似於選擇排序的方式,用乙個奇數指標記錄當前奇陣列結束為止,另外乙個選擇指標從後面的未分割陣列中選出奇數並進行交換,然後將奇數指標後移一位

2.原地交換的兩種方式

異或

int a = 10;

int b = 20;

a = a^b;

b = b^a;

a = a^b;

和差

int a = 10;

int b = 20;

a = a + b;

b = a - b;

a = a - b;

public

class

solution

}//選擇並交換

for(i = k + 1; i < nums.length; i++)}}

//原地交換

// public void swap(int a,int b)

// }

2 18 陣列分割

題目概述 有乙個沒有排序,元素個數為2n的正整數陣列。要求把它分割為元素個數為n的兩個陣列,並使兩個子陣列的和最接近。假設陣列a 1.2n 所有元素的和是sum。模仿動態規劃解0 1揹包問題的策略,令s k,i 表示前k個元素中任意i個元素的和的集合。顯然 s k,1 s k,k s k,i s k...

2 18 陣列分割

問題 有乙個沒有排序,元素個數為2n的正整數陣列。要求把它分割為元素個數為n的兩個陣列,並使兩個子陣列的和最接近。解法 假設陣列a 1.2n 所有元素的和是sum。模仿動態規劃解0 1揹包問題的策略,令s k,i 表示前k個元素中任意i個元素的和的集合。顯然 s k,1 s k,k s k,i s ...

陣列分割問題

昨天同學問我一道關於陣列分割的問題 有乙個無序 元素個數為2n的正整數陣列,要求 如何能把這個陣列分割為元素個數為n的兩個陣列,並是兩個子陣列的和最接近。假設2n個整數之和為sum。從2n個整數中找出n個元素的和,有三種可能 大於sum 2,等於sum 2,小於sum 2。可以考慮小於等於sum 2...