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

相关推荐
妙为18 分钟前
银河麒麟V4下编译Qt5.12.12源码
c++·qt·国产化·osg3.6.5·osgearth3.2·银河麒麟v4
小白菜又菜3 小时前
Leetcode 2075. Decode the Slanted Ciphertext
算法·leetcode·职场和发展
史迪仔01124 小时前
[QML] QML IMage图像处理
开发语言·前端·javascript·c++·qt
会编程的土豆5 小时前
【数据结构与算法】再次全面了解LCS底层
开发语言·数据结构·c++·算法
低频电磁之道5 小时前
解决 Windows C++ DLL 导出类不可见的编译错误
c++·windows
君义_noip6 小时前
信息学奥赛一本通 4150:【GESP2509七级】⾦币收集 | 洛谷 P14078 [GESP202509 七级] 金币收集
c++·算法·gesp·信息学奥赛·csp-s
Ricky_Theseus7 小时前
静态链接与动态链接
c++
摸个小yu7 小时前
【力扣LeetCode热题h100】链表、二叉树
算法·leetcode·链表
澈2077 小时前
双指针,数组去重
c++·算法
小辉同志7 小时前
207. 课程表
c++·算法·力扣·图论