您的位置:首页 > 游戏 > 游戏 > 企业管理系统论文_waf防火墙排名_爱站网关键词查询_中国免费网站服务器2020

企业管理系统论文_waf防火墙排名_爱站网关键词查询_中国免费网站服务器2020

2024/11/16 21:26:24 来源:https://blog.csdn.net/qq_40878316/article/details/143176751  浏览:    关键词:企业管理系统论文_waf防火墙排名_爱站网关键词查询_中国免费网站服务器2020
企业管理系统论文_waf防火墙排名_爱站网关键词查询_中国免费网站服务器2020

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

整天 定义为时间持续时间是 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 * 10^5
  • 1 <= hours[i] <= 10^9

我的解答:

class Solution {public long countCompleteDayPairs(int[] hours) {// 这里必须使用long类型数组// 因为某些值的数量远大于int类型最大值,导致数值溢出(半天想不明白自己错在哪,看了题解才幡然醒悟T_T)long[] hour = new long[24];long res = 0;for(int h : hours){// 通过求余的方式将值的范围约束在0-23以内hour[h % 24]++;}// 单独计算0跟12的组合,比较特殊res += ( hour[0]  * ( hour[0]  - 1 )) / 2; res += ( hour[12] * ( hour[12] - 1 )) / 2; for(int i = 1; i < 12; i++){res += hour[i] * hour[24-i];}return res;}
}

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com