2014-10-03 125 views
0

我有麻煩理解這個挑戰的測試用例。 problem的描述是:如何在此代碼挑戰中獲得此測試用例的結果?

2-sum是一個數字列表的總和,但是每個數字在一個2旁邊被計數兩次。給出一個數字列表,打印出他們的二筆。 例如,當給定1 2 3 4作爲輸入時,打印14,數字1和3的總和計數兩次。

測試用例:

1 2 3 4 = 14

2 1 3 6 2 6 = 33

7 9 -10 5 -5 3 -1 = 8

2 2 8 2 2 14 2 2 = 68

-23 13 7 6 9 11 -5 2 0 = 15

我不理解的測試用例是2 2 8 2 2 14 2 2 = 68有8個數字,我在這樣的嘗試:

2 + 14 + 4 + 28 + 4 = 58,和那麼我確實知道另一個在哪裏10,這讓我感到困惑,因爲在開始,中間和結束時有2個。 幫助理解

+0

沒有針對此問題的樣品溶液在這裏:HTTP: //www.programcreek.com/2012/12/leetcode-solution-of-two-sum-in-java/ – 2014-10-03 03:48:09

+0

@AndersonGreen謝謝你的回答,但這是一個不同的問題 – Learner 2014-10-03 03:49:53

回答

2

根據這樣的問題:

every number that's next to a 2 is counted twice 

換句話說,每當有一個2直接之前或列表中的一個號碼後,例如數有助於兩次總和。在您所關心的測試情況下,列表中的所有號碼是相鄰的2,所以每數計數兩次,所以答案是:

2 * (2 + 2 + 8 + 2 + 2 + 14 + 2 + 2) = 2 * 34 = 68 
+0

謝謝你的回答,那就是我想要的答案 – Learner 2014-10-03 03:55:52