美文网首页
天池在线编程编程大赛2020.11.14日常周赛

天池在线编程编程大赛2020.11.14日常周赛

作者: 老鼠慎言 | 来源:发表于2020-12-02 22:50 被阅读0次

给定一些音乐的时长,我们想从中选两个不同的歌曲,使得他们的总时长是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

相关文章

网友评论

      本文标题:天池在线编程编程大赛2020.11.14日常周赛

      本文链接:https://www.haomeiwen.com/subject/edlpwktx.html