演算法 求每乙份和盡量相等

2021-10-12 03:10:49 字數 1998 閱讀 2802

有一堆整數,請把他們分成三份,確保每乙份和盡量相等(11,42,23,4,5,6,4,5,6,11,23,42,56,78,90)

function

foo(arr)

maxnumbertotal=total/3;

let temptotal=arr[

amount-1

];let firstarr=

[arr[

amount-1

]];let delindex=

[amount-1

];let firstindex=-1

;//獲取第乙份資料

for(

let i=

amount-2

;i>

0;i--

)else

if(temptotal>maxnumbertotal)

else

if(temptotalelse}}

}for

(let i=

0;i)amount

=arr.length;

//注意每次的arr都是不一樣的

let secondarr=

[arr[

amount-1

]]; delindex=

[amount-1

];let secondindex=-1

; temptotal=arr[

amount-1

];//獲取第二份陣列

for(

let i=

amount-2

;i>

0;i--

)else

if(temptotal>maxnumbertotal)

else

if(temptotalelse}}

}for

(let i=

0;i)//公平處理,當出現極差情況就需要做公平處理了,這裡暫時不考慮極差情況

return

[firstarr,secondarr,arr]

} console.

log(

foo([11

,42,23

,4,5

,6,4

,5,6

,11,23

,42,56

,78,90

]));

思路:

1、求出總和 為406 ,根據需要分成的分數(三份)求出每份的平均數為 135.33

2、用平均數(135.34)減去本陣列中最大的數(90) 等於45.34,然後將45.34 找出當前陣列中接近該數字 為42,第乙份數字可以確定 135.34 -(90 + 42)= 3.34 ,這個3.34 在本陣列內屬於最小的數字,所以不能被其他陣列代替,確定第一組數字時候,將90 ,42 將本陣列移除,重複該步驟

3、第二份數值,將90 ,42 將本陣列移除 本陣列最大的就是 78,然後 平均數135.34 - 78=57.34, 57.34 最接近的數字就是 56, 135.34 -(78 + 56)= 1.34,餘數 已是小於陣列中最小的數字,所以確定第二份陣列為 78、56,將本陣列移除

4、此時數字還剩【42、23、23、11、11、6、6、5、5、4、4】,第三份數字中可以將最大的42設定為第乙個數字,可以用平均數 135.34 - 42 = 93.34 ,此時陣列內還有【23、23、11、11、6、6、5、5、4、4】,剩餘的數字93.34 比 剩餘的最大數字還大,所以需要迴圈累計望第三份陣列累放…… 135.34 - 42 - 23 -23 …… -4 -4 = -4.66

思路簡括:求出平均數,然後使用陣列中最大的數字跟平均數對比,然後用差異陣列去跟剩下的陣列內的數字比較,拿出相近的陣列(直到差異小於陣列內最小的值為止)

結論:乙份陣列135.34 -(90 + 42 + 4)= -0.64

二份陣列135.34 -(78 + 56)= 1.34

二份陣列135.34 -(42 + 23 + 23 + 11 + 11 + 6 + 6 + 5 + 5 + 4 )= -0.66

深度工作 充分使用每乙份腦力

浮躁已經成了普遍的社會現象。判斷乙個人是否浮躁非常容易,看他一天主動拿起手機的次數就可以了。據ted的演講者說,這個值一般是50次,除了8小時的睡覺之外,基本上每20分鐘就要去翻翻手機。我們還發現,幾乎同時畢業的同學,在工作幾年後會產生巨大的差距,有的人已經能夠管理上百人的大團隊,而有的人甚至連自己...

主存和cache每一塊相等 多核Cache一致性

經過這麼多篇文章的介紹,我們應該已經對cache有乙個比較清晰的認識。cache會面臨哪些問題,我們該怎麼處理這些問題。現在我們討論多核cache一致性問題。在摩爾定律不太適用的今天,人們試圖增加cpu核數以提公升系統整體效能。這類系統稱之為多核系統 簡稱mp,multi processor 我們知...

主存和cache每一塊相等 cache基本原理

在學習linux kernel的過程,經常會cache的概念,從軟體層面的page buffer cache 再到硬體層面中cpu的l1 l2 l3 cache tlb,磁碟內部的硬體cache 以及程式設計時的cacheline對齊,slab著色等等。cache是我們始終繞不開的乙個主題,本文主要...