程式設計之美 陣列分割

2021-06-14 06:30:40 字數 511 閱讀 5461

問題1:

有乙個無序、元素個數為n的正整數陣列,要求:如何能把這個陣列分割為兩個子陣列,子陣列的元素個數不限,並使兩個子陣列之和最接近。

解答:

int sum = 0;  

for (i=0; i0;j--) //從最大的開始遍歷,是為了防止同乙個數選取多次

for(j= sum/2 ;;j--)

if(dp[j])

break;

return (sum/2-j)*2 ;

問題2:

有乙個無序、元素個數為2n的正整數陣列,要求:如何能把這個陣列分割為兩個子陣列,子陣列的元素個數不限,並使兩個子陣列之和最接近。

解答:dp[i][j] 表示由i個數字組成能否形成sum=j的可能性

dp[0][0] = 1;//else =0;

for(k = 1; k<=2*n; k++)

程式設計之美 陣列分割

程式設計之美 陣列分割 和擴充套件 將乙個陣列劃分成兩個子陣列,要求他們的和最接近 1.長度要求相等的情況 2.長度沒有要求的情況 都能用動態規劃解決 include includeusing namespace std void arraysplit1 int a,int n 兩個子陣列長度要求相...

程式設計之美 陣列分割

問題 有乙個沒有排序,有2n個元素的陣列,要求把這個陣列分為兩部分,分別含有n個元素,並使兩個子陣列的和最接近。這裡的程式主要是計算這個和的值。比如陣列 計算後符合的分法是 和算出比較小的就可以了是 110 例如陣列 分開後是 和 思考方法 動態規劃 1 計算出陣列中所有元素的和,並把它除以2,這樣...

程式設計之美 陣列分割

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