我很难理解这个挑战的测试用例。 problem说明是:
2-sum是数字列表的总和,但是2之后的每个数字都被计算两次。给出一个数字列表,打印出他们的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 :(得分:2)
根据问题:
every number that's next to a 2 is counted twice
换句话说,只要在之前直接 或之后列表中的数字,这个数字就会占总和的两倍。在你关心的测试用例中,列表中的所有数字都与2相邻,所以每个数字都计算两次,所以答案是:
2 * (2 + 2 + 8 + 2 + 2 + 14 + 2 + 2) = 2 * 34 = 68