Day 24:100301. 构成整天的下标对数目II

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

给你一个整数数组 hours,表示以 **小时 **为单位的时间,返回一个整数,表示满足 i < j 且 hours[i] + hours[j] 构成 **整天 **的下标对 i, j 的数目。

**整天 **定义为时间持续时间是 24 小时的 **整数倍 **。

例如,1 天是 24 小时,2 天是 48 小时,3 天是 72 小时,以此类推。

image.png

把所有数据对 24 取余存储到一个数组中。
对于每一个值找对应的 24 - i 的数目,进行相乘得到结果。对于 0 和 12 要特殊考虑。

完整代码

class Solution {
    public long countCompleteDayPairs(int[] hours) {
        long[] times = new long[24];
        for (int hour : hours) {
            times[hour % 24]++;
        }
        long res = 0;
        // 0 和 12
        if (times[0] > 1) {
            res += (times[0] * (times[0] -  1)) / 2;
        }
        if (times[12] > 1) {
            res += (times[12] * (times[12] -  1)) / 2;
        }
        for (int i = 1; i < 12; i++) {
            if (times[i] > 0 && times[24 - i] > 0) {
                res += times[i] * times[24 - i];
            }
        }
        return res;
    }
}

相关推荐

  1. LeetCode 2824.统计和小于目标下标数目

    2024-06-16 21:20:03       53 阅读
  2. 整体意义构成构建

    2024-06-16 21:20:03       42 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-16 21:20:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-16 21:20:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-06-16 21:20:03       87 阅读
  4. Python语言-面向对象

    2024-06-16 21:20:03       96 阅读

热门阅读

  1. 通货膨胀和通货紧缩是什么?

    2024-06-16 21:20:03       31 阅读
  2. 软件服务中的 SLA 到底是什么?

    2024-06-16 21:20:03       29 阅读
  3. 一步一步写线程之十五协程

    2024-06-16 21:20:03       29 阅读
  4. 【Flask 系统教程 7】数据库使用 SQLAlchemy

    2024-06-16 21:20:03       25 阅读
  5. Dubbo源码解析-mock原理

    2024-06-16 21:20:03       30 阅读
  6. MYSQL in和exists

    2024-06-16 21:20:03       31 阅读
  7. C语言结构体学生

    2024-06-16 21:20:03       28 阅读