int numPairsDivisibleBy60(vector<int>& time)
{
map<int, int> mii;
int index = 0;
for (int i : time)
{
i %= 60;
if (i != 0)index += mii[60 - i];
else index += mii[0];
mii[i]++;
}
return index;
}
思路:有点像两数之和。需要搞清楚的一点是,题目只需要统计相加等于60的倍数的数字对的数量即可。所以可以把数组中的每一项对60取余,从i开始,之后统计i之前相加等于60的数量即可。有个小坑,当正好为60的时候,也就是取余结果是0的时候,需要统计0的个数。