打卡第三十九天
2道中等题

题目:

思路:哈希表+余数互补,用大小为24的数组记录每个余数出现的次数,对当前时间,先找它的互补余数有多少个,然后再把自己的余数加入计数
代码:
class Solution {
public:long long countCompleteDayPairs(vector<int> &hours) {const int H = 24;long long ans = 0;int cnt[H]{};// 创建大小为24的数组,用于统计每个余数出现的次数for (int t : hours) {ans += cnt[(H - t % H) % H];// (H - t % H) % H 计算与t配对能组成24小时倍数的余数,然后将该余数对应的计数加到答案中cnt[t % H]++;// 将当前时间的余数计数加1}return ans;}
};
耗时≈一小时 明天继续