leetcode-1010. Pairs of Songs With Total Durations Divisible by 60(c语言)

问题描述

在歌曲列表中,第 i 首歌曲的持续时间为 time[i] 秒。

返回总持续时间(以秒为单位)可被 60 整除的歌曲对的数量。形式上,我们希望数组下标  i < j 且有 (time[i] + time[j]) % 60 == 0

示例

  

Input: [30,20,150,100,40]
Output: 3
Explanation: Three pairs have a total duration divisible by 60:
(time[0] = 30, time[2] = 150): total duration 180
(time[1] = 20, time[3] = 100): total duration 120
(time[1] = 20, time[4] = 40): total duration 60
Input: [60,60,60]
Output: 3
Explanation: All three pairs have a total duration of 120, which is divisible by 60.

 

首先我们需要知道一个公式

                  (a+b)%p = (a%p + b%p)%p

然后可以建立一个数组,计算每个数除以60的余数,并统计余数的个数,然后根据公式计算结果。注意考虑0和30的特殊情况。

代码

int numPairsDivisibleBy60(int* time, int timeSize){
    
    int res=0;
    int a[60]={0};
    for(int i=0;i

 

 

 

你可能感兴趣的:(leetcode)