2014-10-03 73 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