在歌曲列表中,第 i 首歌曲的持续时间为 time[i] 秒。
返回其总持续时间(以秒为单位)可被 60 整除的歌曲对的数量。形式上,我们希望索引的数字 i 和 j 满足 i < j 且有
(time[i] + time[j]) % 60 == 0。来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/pairs-of-songs-with-total-durations-divisible-by-60
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
public int numPairsDivisibleBy60(int[] time) {
Map<Integer, Integer> nummap = new HashMap<>();
int sum = 0, t = 0;
for (int i : time){
t = i % 60;
//take
if (t == 0)
sum += nummap.get(0);
else if (nummap.containsKey(60 - t))
sum += nummap.get(60 - t);
//input
if (nummap.containsKey(t))
nummap.put(t, nummap.get(t) + 1);
else
nummap.put(t, 1);
}
return sum;
}
两数之和的翻版,基于两数的数学联系建立映射,避免暴力查询。
hashmap对象的创建、基本用法要清楚。