陣列分組問題

2022-03-13 02:18:03 字數 1194 閱讀 6957

這個問題是這個樣子滴有乙個無序、元素個數為n(n為偶數)的正整數陣列arr,要求:如何能把這個陣列分割為元素個數為n/2的兩個子陣列,並使兩個子陣列的的和最接近。

我的思路是:

(1)把陣列拆成2個子陣列a和b

(2)用a中的每個元素與b中的每個元素比較,陣列值之和的絕對值小於原來的值就交換

其實並不難,關鍵在於我突然犯2了...我寫了個測試陣列a=[1,2,3,4,5,6].然後想當然地以為分成的兩個陣列各元素之和應該相等的。結果在那苦苦耗了半天,想死的心都有了...

from

random

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)

print

"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...