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

Every day a Leetcode

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

解法1:哈希

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

枚举 j,并维护 cntx 表示所有满足 i < j 的下标 i 中,有几个 hoursi 模 24 等于 x。设 y = numsj % 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)。

相关推荐
NeoGressAI外贸数字化5 小时前
外贸独立站零询盘排查:从 Google Search Console 到 PageSpeed 的技术实操
开发语言·c++
神仙别闹5 小时前
基于 QT(C++)实现操作系统
数据库·c++·qt
无小道5 小时前
C/C++——异步编程小记
开发语言·c++·c++11
奇树谦5 小时前
Pimpl 模式(d-pointer)详解:如何解决 C++ 头文件过大、编译依赖和 ABI 兼容问题
开发语言·c++
shylyly_5 小时前
stack/queue中的deque
数据结构·c++·deque·双端队列·queue·stack·容器适配器
raindayinrain5 小时前
c++泛型编程
c++·函数模板·类模板·泛型编程
OPEN-F5 小时前
C++综合实战:网络编程入门与HTTP客户端
网络·c++·http
十五年专注C++开发6 小时前
CMake基础:BUILD_INTERFACE 与 INSTALL_INTERFACE 完全解析
c++·cmake·build_interface
土司大王6 小时前
LeetCode hot100——缺失的第一个正数
数据结构·算法·leetcode
布莱克6056 小时前
strcpy 函数详解:作用、用法与安全缺陷
c语言·开发语言·c++·安全