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)。

相关推荐
刃神太酷啦16 小时前
《网络基础全链路深度解析:从Socket编程到HTTPS与TCP/UDP内核机制》----《Hello Linux!》(25)
linux·运维·c语言·网络·c++·tcp/ip·https
paeamecium17 小时前
【PAT甲级真题】- Shuffling Machine (20)
c++·算法·pat考试·pat
不想写代码的星星17 小时前
C++协程从入门到放弃?不,是从入门到手搓调度器
开发语言·c++
redaijufeng17 小时前
C++构造函数详解:从基础原理到实际应用
java·jvm·c++
兵哥工控17 小时前
MFC实现 Modbus-TCP 实时采集ZH-T08R 电阻模块阻值实例
c++·tcp/ip·mfc·modbus-tcp
alphaTao17 小时前
LeetCode 每日一题 2026/5/11-2026/5/17
算法·leetcode
洛水水17 小时前
【力扣100题】45.零钱兑换
算法·leetcode·职场和发展
ComputerInBook18 小时前
C++ 14 相比 C++ 11新增之特征
开发语言·c++·c++ 14
Peter·Pan爱编程18 小时前
成员函数与 this 指针:函数属于数据
c++
YL2004042618 小时前
041二叉树的层序遍历
数据结构·leetcode·bfs