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

相关推荐
rannn_1111 小时前
【力扣hot100】链表专题|160、206、234、141、142
java·算法·leetcode·链表·面试·开发
不会代码的小猴2 小时前
21. 泛型编程上
开发语言·c++·笔记·算法
营养充电站2 小时前
VS Code Git 工作树:解锁多分支并行开发的高效体验
leetcode·决策树·逻辑回归·散列表·模拟退火算法
青瓦梦滋3 小时前
传输层UDP/TCP协议
linux·网络·c++·网络协议·tcp/ip·udp
一只旭宝3 小时前
细讲C加加【9】C++ std::function与std::bind详解|仿函数、绑定器、类成员绑定、占位符、成员偏移指针
开发语言·c++·算法
良木林3 小时前
子串 - LeetCode hot 100
算法·leetcode·职场和发展
蒸蒸yyyyzwd4 小时前
秋招不熟悉力扣学习笔记1
笔记·学习·leetcode
Lhan.zzZ5 小时前
在 Visual Studio 2022 中打造可扩展的动态链接库模块:从零搭建到原理解析
开发语言·c++·visual studio
zh路西法7 小时前
【3D SLAM源码解读系列】(二)Small_gicp——5 个积木搭出最优点云配准
c++·pcl·icp·fastgicp·smallgicp·gicp
fpcc9 小时前
ubuntu26环境下的开发环境安装处理
c++·并行编程