3185. 构成整天的下标对数目 II
2024-10-22 10:44:47
Problem: 3185. 构成整天的下标对数目 II
思路
将日期取模映射到24小时,使用哈希表存储时间,并在遍历到每一个时间时,答案加上之前出现的与之构成整天的日期个数,这样就是实现了配对,一次遍历即可。
注意的点
因为我是先做的I再做的II,一开始直接把I的复制过来发现有一个大数组的结果不对。我尝试把ans改成long,但是发现不对最后还是得转回int,也没有用。这才发现原来是返回值应该是long。
然后我一开始使用了哈希表来存储数据,发现时间花销较大。哈希表需要判空操作等,自然花销的常数时间是比较大的。对于键范围已知且为连续整数的取值范围,我们可以直接用数组来作为哈希表存储,这样不仅代码好写,时间效率也有常数级别的较高优化。
复杂度
- 时间复杂度: $O(n)$
- 空间复杂度: $O(n)$
Code
1 | class Solution { |