3184.构成整天的下标对数目 I

【LetMeFly】3184.构成整天的下标对数目 I:暴力模拟(下一题再用哈希表)

力扣题目链接:https://leetcode.cn/problems/count-pairs-that-form-a-complete-day-i/

给你一个整数数组 hours,表示以 小时 为单位的时间,返回一个整数,表示满足 i < jhours[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 <= 100
  • 1 <= hours[i] <= 109

解题方法:模拟

两层循环,第一层循环遍历数组的每个元素,第二层循环从第一层循环的元素的下一个元素开始遍历,如果两数之和是24的倍数,则答案数量加一。

  • 时间复杂度$O(len(hours)^2)$
  • 空间复杂度$O(1)$

AC代码

C++

1
2
3
4
5
6
7
8
9
10
11
12
class Solution {
public:
int countCompleteDayPairs(vector<int>& hours) {
int ans = 0;
for (int i = 0; i < hours.size(); i++) {
for (int j = i + 1; j < hours.size(); j++) {
ans += (hours[i] + hours[j]) % 24 == 0;
}
}
return ans;
}
};

Go

1
2
3
4
5
6
7
8
9
10
11
12
13
package main

func countCompleteDayPairs(hours []int) int {
ans := 0
for i, h1 := range hours {
for j := i + 1; j < len(hours); j++ {
if (h1 + hours[j]) % 24 == 0 {
ans++
}
}
}
return ans
}

Java

1
2
3
4
5
6
7
8
9
10
11
class Solution {
public int countCompleteDayPairs(int[] hours) {
int ans = 0;
for (int i = 0; i < hours.length; i++) {
for (int j = i + 1; j < hours.length; j++) {
ans += (hours[i] + hours[j]) % 24 == 0 ? 1 : 0;
}
}
return ans;
}
}

Python

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
from typing import List

class Solution:
def countCompleteDayPairs(self, hours: List[int]) -> int:
return sum((hours[i] + hours[j]) % 24 == 0 for i in range(len(hours)) for j in range(i + 1, len(hours)))

# if __name__ == '__main__':
# l = ((i, j) for i in range(3) for j in range(3))
# for i, j in l:
# print(i, j)
# """
# 0 0
# 0 1
# 0 2
# 1 0
# 1 1
# 1 2
# 2 0
# 2 1
# 2 2
# """

同步发文于CSDN和我的个人博客,原创不易,转载经作者同意后请附上原文链接哦~

Tisfy:https://letmefly.blog.csdn.net/article/details/143166228


3184.构成整天的下标对数目 I
https://blog.letmefly.xyz/2024/10/22/LeetCode 3184.构成整天的下标对数目I/
作者
Tisfy
发布于
2024年10月22日
许可协议