您的当前位置:首页正文

【LeetCode:3185. 构成整天的下标对数目 II + 模拟】

2024-11-25 来源:个人技术集锦

? 算法题 ?
? 算法题 ?

? 题目链接

⛲ 题目描述

给你一个整数数组 hours,表示以 小时 为单位的时间,返回一个整数,表示满足 i < j 且 hours[i] + hours[j] 构成 整天 的下标对 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
1 <= hours[i] <= 109

? 求解思路&实现代码&运行结果


⚡ 模拟

? 求解思路
? 实现代码
class Solution {
    public long countCompleteDayPairs(int[] hours) {
        long ans = 0;
        int[] cnt = new int[24];
        for (int hour : hours) {
            ans += cnt[(24 - hour % 24) % 24];
            cnt[hour % 24]++;
        }
        return ans;
    }
}
? 运行结果


? 共勉

最后,我想和大家分享一句一直激励我的座右铭,希望可以与大家共勉!

显示全文