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

embedded/2024/10/22 21:06:16/

12

【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 ( l e n ( h o u r s ) 2 ) O(len(hours)^2) O(len(hours)2)
  • 空间复杂度 O ( 1 ) O(1) O(1)

AC代码

C++
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
package mainfunc countCompleteDayPairs(hours []int) int {ans := 0for i, h1 := range hours {for j := i + 1; j < len(hours); j++ {if (h1 + hours[j]) % 24 == 0 {ans++}}}return ans
}
Java
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
from typing import Listclass 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


http://www.ppmy.cn/embedded/129653.html

相关文章

风口浪尖上的新乡医学院第一附属医院

近期,河南豫北规模最大的公立三甲医院——新乡医学院第一附属医院,隆重开展了医院医疗设备维保托管项目服务。此项目总金额高达 5400 万,堪称河南省有史以来最大的一次医疗设备维保项目,一时间在行业内引发广泛关注。 回溯今年 5 月份,曾有新闻在坊间流传,称河南爱生医疗器械有…

计算机组成原理一句话

文章目录 计算机系统概述存储系统 计算机系统概述 指令和数据以同等地位存储在存储器中&#xff0c;形式上没有差别&#xff0c;但计算机应能区分他们。通过指令周期的不同阶段。 完整的计算机系统包括&#xff0c;1&#xff09;软件系统&#xff1a;程序、文档和数据&#xff…

nosql课本习题

nosql题目 1. 文档数据库相比其他 NoSQL 的突出优势和特点是什么&#xff1f; 答案&#xff1a; 文档数据库的突出优势在于它的灵活性和可扩展性。不同于传统的关系型数据库&#xff0c;文档数据库允许存储半结构化和非结构化数据&#xff0c;每个文档可以有不同的字段&#x…

MyBatis 配置详解

在项目中经常会用到 mybatis 相关的一些配置&#xff0c;而在启动类项目工程中&#xff0c;一般会把 mybatis 配置文件单独写到 mybatis,yml 中&#xff0c;如下简单介绍下常用的 mybatis 配置 mybatis:configuration:call-setters-on-nulls: truemap-underscore-to-camel-case…

云原生技术:nacos进化到servicemash

面试的时候跟面试官吹嘘说&#xff0c;现在主流的微服务架构&#xff0c;都已经用得熟熟的了&#xff0c;自己技术很不错。进了公司却被分到了API资产管理平台&#xff0c;要做一个类似于网关的东西。经过调研才发现&#xff0c;自己用的微服务架构已经过时了&#xff0c;什么&…

Linux小知识2 系统的启动

我们在上文中介绍了文件系统&#xff0c;提到了Linux的文件系统存在一个块的概念&#xff0c;其中有一个特殊的块&#xff1a;引导块。这和我们这里要讲的系统启动有关。 BIOS 基本输入输出系统&#xff0c;基本上是一个操作系统最早实现也是最早运行的第一个程序。是一个比较…

Decode 题目做法(Codeforces Round 962 (Div. 3) E题)

学习到的内容: 一种常用的二进制串处理方法 Problem - 1996E - Codeforces 解题方法 把0看成-1, 求一个前缀和. [l,r]内01数量相等则等价于pre[r] pre[l - 1] #include<bits/stdc.h> using namespace std; const int mod 1e9 7;void solve(){string s;cin >>…

React是如何工作的?

从编写组件到最后屏幕生成界面&#xff0c;如上图所示&#xff0c;我们现在需要知道的就是后面几步是如何运行的。 概述 这张图解释了 React 渲染过程的几个阶段&#xff1a; 渲染触发&#xff1a;通过更新某处的状态来触发渲染。渲染阶段&#xff1a;React 调用组件函数&…