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

相关推荐
moringlightyn3 分钟前
进程控制(程序替换+自定义Shell)
linux·服务器·c++·笔记·c·shell·进程
.柒宇.18 分钟前
力扣hot100---42.接雨水(java版)
java·算法·leetcode
ULTRA??26 分钟前
利用运动规划库OMPL的全局路径规划ROS插件(使用informedRRTstar,AI辅助完成)
c++
誰能久伴不乏39 分钟前
为什么 TCP 服务端重启会出现 “Address already in use”问题解析
linux·服务器·c语言·网络·c++·tcp/ip
AA陈超1 小时前
LyraRPG:001.创建RPGCore插件
c++·笔记·学习·ue5·虚幻引擎·lyra
无限进步_1 小时前
C++从入门到类和对象完全指南
开发语言·c++·windows·git·后端·github·visual studio
小李小李快乐不已1 小时前
图论理论基础(3)
数据结构·c++·算法·图论
星竹晨L2 小时前
C++红黑树:理论与实践相结合的平衡艺术
开发语言·数据结构·c++
湫兮之风2 小时前
C++: 一文掌握std::vector::assign函数
开发语言·c++
AA陈超2 小时前
Lyra学习6:GameFeatureAction_AddComponents分析
c++·笔记·学习·ue5