這個問題是這個樣子滴:有乙個無序、元素個數為n(n為偶數)的正整數陣列arr,要求:如何能把這個陣列分割為元素個數為n/2的兩個子陣列,並使兩個子陣列的的和最接近。
我的思路是:
(1)把陣列拆成2個子陣列a和b
(2)用a中的每個元素與b中的每個元素比較,陣列值之和的絕對值小於原來的值就交換
其實並不難,關鍵在於我突然犯2了...我寫了個測試陣列a=[1,2,3,4,5,6].然後想當然地以為分成的兩個陣列各元素之和應該相等的。結果在那苦苦耗了半天,想死的心都有了...
fromrandom
import
randint
import
copya=
[randint(1,
10)
fori
inrange(0,
10)]
x,y=
a[:len(a)/2
],a[len(a)/2
:]x=copy.deepcopy(x)y=
copy.deepcopy(y)
fori
inrange(len(x)):
form
inrange(len(y)):n=
abs(sum(x)
-sum(y))
x[i],y[m]
=y[m],x[i]
ifabs(sum(x)
-sum(y))
<
n:x[i],y[m]
=y[m],x[i]x=
copy.deepcopy(x)y=
copy.deepcopy(y)
"list is %s"%
a,"\nlista is%s"%
x,"\nlistb is%s"%
y,"\nthe minus abs value is %d"%
abs(sum(x)
-sum(y))
js實現陣列分組
有這樣乙個陣列 法國 澳大利亞 智利 紐西蘭 西班牙 加拿大 阿根廷 美國 0 國產 波多黎各 英國 比利時 德國 義大利 義大利 現在希望讓每3個分成乙個陣列,像這樣 法國 澳大利亞 智利 紐西蘭 西班牙 加拿大 阿根廷 美國 0 國產 波多黎各 英國 比利時 德國 義大利 義大利 第一種辦法 v...
陣列(list)分組 分段
對乙個list進行分組,要求控制每組中的元素個數 1.使用切片分組 lst 1,2,3,4,5,6,7,8,9,8,7,6,5,4,3,2,1 lst可為空,最後返回值也為空 num 3 定義每組包含的元素個數 for i in range 0,len lst num print lst i i n...
PHP陣列分組操作
近期在開發過程中,遇到資料渲染 需要對指定的幾列進行重複資料合併單元格,想了一些方案,最終還是選擇在後台進行資料處理進行渲染 下面貼出實現 首先需要做乙個多維陣列根據指定索引字段進行分組的乙個演算法 public static function array val chunk array ret a...