【发布时间】:2020-04-21 11:00:48
【问题描述】:
我正在尝试查找时长总计为整分钟的歌曲对。给定歌曲长度 [10, 50, 90, 30] 的示例。计算不同对的总数。我预计返回 2,因为第一对和第二对是 60 秒,第三和第四首歌曲对是 120。但我反而得到 1 对。
def pair_with_target_sum(songs, k):
n = len(songs)
count = 0
for i in range(0, n):
for j in range(i + 1, n):
if songs[i] + songs[j] == k:
count += 1
return count
def main():
print(pair_with_target_sum([10, 50, 90, 30], 60))
print(pair_with_target_sum([30, 20, 150, 100, 40], 60))
main()
【问题讨论】:
-
你的“一整分钟”检查是这里的诀窍——你熟悉检查一个数字是否能被另一个数字整除的过程吗?
-
您正在测试总和为 60,而不是“整分钟”。
-
检查
(songs[i] +songs[j]) % k == 0... -
你的意思是
sum(1 for c in itertools.combinations(songs, 2) if sum(c) % k == 0)吗? -
对于
[10, 50, 50]和[20, 40, 20, 40],您希望得到什么答案?
标签: python-3.x counting