Leetcode3185. 构成整天的下标对数目 II

Every day a Leetcode

题目来源:3185. 构成整天的下标对数目 II

解法1:哈希

本质思路类同经典的"两数之和"。枚举右,用哈希表维护左。

枚举 j,并维护 cnt[x] 表示所有满足 i < j 的下标 i 中,有几个 hours[i] 模 24 等于 x。设 y = nums[j] % 24,那么答案就是 sum(cnt[(24 - y) % 24])。

注意取余的存在,余 0 的情况要特殊处理。

代码:

c 复制代码
/*
 * @lc app=leetcode.cn id=3185 lang=cpp
 *
 * [3185] 构成整天的下标对数目 II
 */

// @lc code=start
class Solution
{
public:
    long long countCompleteDayPairs(vector<int> &hours)
    {
        vector<int> cnt(24, 0);
        long long ans = 0LL;
        for (int &hour : hours)
        {
            hour %= 24;
            ans += cnt[(24 - hour) % 24];
            cnt[hour]++;
        }
        return ans;
    }
};
// @lc code=end

结果:

复杂度分析:

时间复杂度:O(n+M),其中 n 为数组 hours 的长度,M=24。

空间复杂度:O(M)。

相关推荐
郝学胜-神的一滴13 小时前
Linux网络字节序详解:从理论到实践
linux·服务器·c语言·开发语言·c++·网络协议·程序人生
EmbedLinX13 小时前
内存池学习笔记(附C++完整实现)
c++·笔记·学习
Trouvaille ~13 小时前
【Linux】线程概念与控制(一):线程本质与虚拟地址空间
linux·运维·服务器·c++·线程·虚拟地址空间·pcb
难得的我们13 小时前
C++中的状态模式
开发语言·c++·算法
啊阿狸不会拉杆13 小时前
《计算机操作系统》第十章 - 多处理机操作系统
c++·算法·计算机组成原理·os·计算机操作系统
sin_hielo13 小时前
leetcode 1200
数据结构·算法·leetcode
秦苒&14 小时前
【脉脉】AI 创作者 xAMA 知无不言:在浪潮里,做会发光的造浪者
大数据·c语言·数据库·c++·人工智能·ai·操作系统
啊阿狸不会拉杆14 小时前
《计算机操作系统》 第十一章 -多媒体操作系统
开发语言·c++·人工智能·os·计算机操作系统
在路上看风景14 小时前
12. 虚函数
c++
千里马-horse14 小时前
Ray Tracing -- Ray query shadows
c++·rendering·vulkan