总持续时间可被 60 整除的歌曲【LC1010】
在歌曲列表中,第
i
首歌曲的持续时间为time[i]
秒。返回其总持续时间(以秒为单位)可被
60
整除的歌曲对的数量。形式上,我们希望下标数字i
和j
满足i < j
且有(time[i] + time[j]) % 60 == 0
。
-
思路
由于需要求两首歌的总时间可被60整除的对数,那么此时一定满足 t i m e [ i ] % 60 + t i m e [ j ] % 60 = 60 time[i]\%60 + time[j] \% 60 = 60 time[i]%60+time[j]%60=60,因此需要使用哈希表记录每首歌对60的余数及其出现次数。文章来源:https://www.toymoban.com/news/detail-436400.html
-
实现文章来源地址https://www.toymoban.com/news/detail-436400.html
class Solution { public int numPairsDivisibleBy60(int[] time) { int[] count = new int[60]; int res = 0; for (int i = 0; i < time.length; i++){ time[i] %= 60; res += count[(60 - time[i]) % 60]; count[time[i]]++; } return res; } }
- 复杂度
- 时间复杂度: O ( n ) O(n) O(n)
- 空间复杂度: O ( C ) O(C) O(C)
- 复杂度
到了这里,关于【每日一题Day199】LC1010总持续时间可被 60 整除的歌曲 | 哈希表的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!