Algorithm
Problem Name: 1010. Pairs of Songs With Total Durations Divisible by 60
You are given a list of songs where the ith
song has a duration of time[i]
seconds.
Return the number of pairs of songs for which their total duration in seconds is divisible by 60
. Formally, we want the number of indices i
, j
such that i < j
with (time[i] + time[j]) % 60 == 0
.
Example 1:
Input: time = [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
Example 2:
Input: time = [60,60,60] Output: 3 Explanation: All three pairs have a total duration of 120, which is divisible by 60.
Constraints:
1 <= time.length <= 6 * 104
1 <= time[i] <= 500
Code Examples
#1 Code Example with Javascript Programming
Code -
Javascript Programming
class Solution:
def numPairsDivisibleBy60(self, time: List[int]) -> int:
mod = [0] * 61
for t in time:
mod[-1] += mod[(60 - t % 60) % 60]
mod[t % 60] += 1
return mod[-1]
Copy The Code &
Try With Live Editor
Input
Output
#2 Code Example with C# Programming
Code -
C# Programming
namespace LeetCode
{
public class _1010_PairsOfSongsWithTotalDurationsDivisibleBy60
{
public int NumPairsDivisibleBy60(int[] time)
{
var counts = new int[60];
var result = 0;
foreach (var num in time)
{
result += counts[(600 - num) % 60];
counts[num % 60]++;
}
return result;
}
}
}
Copy The Code &
Try With Live Editor
Input
Output