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

给你一个整数数组 hours,表示以 小时 为单位的时间,返回一个整数,表示满足 i < j 且 hoursi + hoursj 构成 整天 的下标对 i, j 的数目。

整天 定义为时间持续时间是 24 小时的 整数倍 。

例如,1 天是 24 小时,2 天是 48 小时,3 天是 72 小时,以此类推。

示例 1:

输入: hours = 12,12,30,24,24

输出: 2

解释:

构成整天的下标对分别是 (0, 1) 和 (3, 4)。

示例 2:

输入: hours = 72,48,24,3

输出: 3

解释:

构成整天的下标对分别是 (0, 1)、(0, 2) 和 (1, 2)。

提示:

1 <= hours.length <= 5 * 105^55

1 <= hoursi <= 109^99

枚举hours,将数值取余保存在哈希表中,枚举时在哈希表里检查是否有构成整天的数对:

cpp 复制代码
class Solution {
public:
    long long countCompleteDayPairs(vector<int>& hours) {
        long long ans = 0;

        unordered_map<int, int> cnt;

        for (int i = 0; i < hours.size(); ++i) {
            int target = (24 - hours[i] % 24) % 24;
            if (cnt.find(target) != cnt.end()) {
                ans += cnt[target];
            }

            ++cnt[hours[i] % 24];
        }

        return ans;
    }
};

如果hours的长度为n,则此算法时间复杂度为O(n),空间复杂度为O(1)。

相关推荐
专注仿真5 小时前
ACM算法
算法·深度优先
顺顺 尼7 小时前
linux 进程信号(上)
linux·c++·算法
罗西的思考8 小时前
[Agent Memory / 强化学习] MemPO源码学习笔记 ---(5)--- GRPO
人工智能·算法·机器学习
richard_yuu8 小时前
动态规划:强化学习的「数学基础」,从 MDP 到值迭代
深度学习·神经网络·算法·yolo·机器学习·动态规划
mmmmath_38 小时前
LeetCode.225.用队列实现栈
算法
Elaine3368 小时前
数据结构与算法-程序
数据结构·python·算法·计算机基础·编程基础
2601_965742228 小时前
布局GEO AI本地营销,我重点看这几个细节
大数据·人工智能·算法·ai·新媒体运营
EatFan8 小时前
AI Agent 上生产前先加三道闸门:审批、限权、可回放的工程实践
人工智能·python·算法·多智能体·ai agent·mcp·harness
思茂信息9 小时前
CST软件BCI仿真模型及仿真案例
开发语言·单片机·嵌入式硬件·算法·emc
Persistent的粽子!9 小时前
双指针算法:最大盛水容器
c++·算法·leetcode