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

给定一些音乐的时长,我们想从中选两个不同的歌曲,使得他们的总时长是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
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容