给定一些音乐的时长,我们想从中选两个不同的歌曲,使得他们的总时长是60的倍数,请计算我们有多少种选法
思路:
创建一个数组用来表示时长为n的歌有多少个,用music 来标记
遍历musics,如果时长为60,则只能与时长为60的组合
如果不是,则与对应的补组合(对于第N个歌曲,它可以组合的个数为对应的补的个数,举例来说 第N个歌曲的时长为1,那么时长为59的歌曲的个数就是它可以组合的个数)
class Solution:
"""
@param musics: the musics
@return: calc the number of pair of music
"""
def musicPairs(self, musics):
# write your code here
count = 0
music = [0]*61
for i in musics:
if i == 60:
count += music[i]
else:
count += music[60-i]
music[i] += 1
return count