【每日一题Day352】LC1726同积元组 | 哈希表+排列组合
同积元组【LC1726】
给你一个由 不同 正整数组成的数组
nums
,请你返回满足a * b = c * d
的元组(a, b, c, d)
的数量。其中a
、b
、c
和d
都是nums
中的元素,且a != b != c != d
。
-
思路
求出所有二元组的积及其出现次数,假设某个积出现的次数为 a a a,那么其对应的组合数有
C a 2 = a ∗ ( a − 1 ) / 2 C_a^2=a*(a-1)/2 Ca2=a∗(a−1)/2
由于题意求的是排列数,即两个二元组顺序可以交换,二元组内部顺序也可以交换,那么最后的排列数还需要乘以8 -
实现
使用哈希表存储每个二元组对应的出现次数,在统计次数的同时求出排列数
class Solution {public int tupleSameProduct(int[] nums) {Map<Integer, Integer> map = new HashMap<>();int n = nums.length, res = 0;for (int i = 0; i < n; i++){for (int j = i + 1; j < n; j++){int p = nums[i] * nums[j];int count = map.getOrDefault(p, 0);res += count * 8;map.put(p, map.getOrDefault(p, count) + 1);}}return res;} }
-
复杂度
- 时间复杂度: O ( n 2 ) O(n^2) O(n2)
- 空间复杂度: O ( n ) O(n) O(n)
-
相关文章:
【每日一题Day352】LC1726同积元组 | 哈希表+排列组合
同积元组【LC1726】 给你一个由 不同 正整数组成的数组 nums ,请你返回满足 a * b c * d 的元组 (a, b, c, d) 的数量。其中 a、b、c 和 d 都是 nums 中的元素,且 a ! b ! c ! d 。 思路 求出所有二元组的积及其出现次数,假设某个积出现的次…...
react中在js文件里定义的变量,如何在less文件里去使用该变量
在 React 中,如果在 JS 文件中定义了变量,可以使用 CSS Modules 的方式将变量导出到 LESS 文件中。 以下是示例代码: // index.js import React from react; import styles from ./styles.module.less;const color red;function App() {re…...

TIA博途中通过SCATTER指令实现将字节BYTE拆分成单个位的具体方法示例
TIA博途中通过SCATTER指令实现将字节BYTE拆分成单个位的具体方法示例 例如: 我们想判断某个字节中各个位的状态是1还是0 ,如何实现呢? 这里介绍通过SCATTER指令拆分字节的方法,仅供大家参考。 首先,我们先了解以下SCATTER指令的基本功能和使用方法: 如下图所示,在基本指…...

网络协议--ARP:地址解析协议
4.1 引言 本章我们要讨论的问题是只对TCP/IP协议簇有意义的IP地址。数据链路如以太网或令牌环网都有自己的寻址机制(常常为48 bit地址),这是使用数据链路的任何网络层都必须遵从的。一个网络如以太网可以同时被不同的网络层使用。例如&#…...
pdf导出实例(itestpdf)
依赖 <!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf --><dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.10</version></dependency>工具类 package or…...

关于CW32单片机pack包安装 KEIL IAR
CW32 系列微控制器软件开发工具入门 芯片包 1. 下载芯片包 官方下载链接:武汉鑫源半导体 2. 安装芯片包 双击芯片包.pack文件 支持 CW32F 系列的 IDE 支持 CW32F 系列的工具链: • • EWARM v7.70 或更高版本 MDK-ARM v5.17 或更高版本 2.1 EW…...

memcpy内存拷贝函数
目录 一、memcpy内存拷贝函数 注意事项 二、memcpy与strcpy对比 三、模拟实现memcpy函数 四、memcpy函数不能进行两块存在内存重叠的空间的内存拷贝 五、改进my_memcpy函数 一、memcpy内存拷贝函数 头文件:string.h 函数原型:void* memcpy(void* …...
数组模拟堆
文章目录 QuestionIdeasCode Question 维护一个集合,初始时集合为空,支持如下几种操作: I x,插入一个数 x ; PM,输出当前集合中的最小值; DM,删除当前集合中的最小值(数…...

【深度学习基础知识(一):卷积神经网络CNN基础知识】
深度学习基础知识 深度学习基础知识(一):卷积神经网络CNN基础知识 卷积神经网络CNN基础知识 0、目录 1. CNN卷积神经网络的特点 2. 卷积操作基础知识 2.1 卷积操作的概念2.2 卷积操作的种类2.3 卷积操作后特征图谱大小计算公式 3. 池化操…...

Git使用入门
一、Git简介 Git 是一个开源的分布式版本控制系统。 Git版本控制的功能为保存不同版本的代码,保存代码的地方叫做仓库。 每个仓库中有多个分支,每个分支上又有很多节点,每个节点代表一个版本,不同的分支可以进行合并࿰…...
电机矢量控制算法和例程
电机矢量控制算法是一种高级的电机控制方法,它通过将电机转子空间矢量转换到旋转坐标系中,并在该坐标系中进行控制来实现对电机的精确控制。下面是对电机矢量控制算法的详细解释: 坐标系变换:电机矢量控制首先将电机转子空间矢量变…...

std::string_view概念原理及应用
概念 使用const string&作为参数是先使用字符串字面量编译器会创建一个临时字符串对象然后创建std::string。 或者一个函数提供char*和const string&参数的两个版本函数,不是优雅的解决方案。 于是需要一个只使用内存不维护内存的类。 原理 在visual s…...
lodash库_.chunk、_.pick、_.omit、_.cloneDeep、_.debounce方法
lodash 模块化、高性能的 JavaScript 实用工具库。官方文档:https://www.lodashjs.com 1.对数组进行分组 _.chunk(array, [size1]) 使用场景,如移动端页面一行能放5个元素,总共7条数据,将一维数组转为二维数组,让一个…...
Java使用FFmpeg对视频文件打标记
免安装 FFmpeg <dependency><groupId>ws.schild</groupId><artifactId>jave-all-deps</artifactId><version>3.0.1</version><exclusions><!-- 排除windows 32位系统 --><exclusion><groupId>ws.sch…...

Redux 学习笔记
在使用 React Redux 前,我们首先了解一下 Redux 的一些基础知识。 Redux 是 JavaScript 应用程序中用于状态管理的容器。它不依赖于任何框架,可以与任何 UI 库和框架一起使用。在应用程序中使用 Redux 时,Redux 是以可预测的方式管理状态。 …...

【Bug】8086汇编学习
文章目录 随笔Bug1、masm编译报错:Illegal use of register2、debug中使用段前缀3、[idata]在编译器中的处理4、push立即数报错5、报错:improper operand type6、程序莫名跳转到未知位置 (doing)7、DOSBox失去响应8、程序运行显示乱码9、程序运行导致DOS…...

JetBrains系列IDE全家桶激活
jetbrains全家桶 正版授权,这里有账号授权的渠道: https://www.mano100.cn/thread-1942-1-1.html 附加授权后的一张图片...

洛谷p1618三连击
import java.util.Scanner; //将 1-9 共9个数分成3组,分别组成3个三位数,且使这3个三位数构成A:B:C的比例,试求出所有满足条件的3个三位数。不满足输出“No!!!”。 public class Main {public static void main(String[] args) {Scanner sc …...
微信公众号h5写一个全局调用微信分享功能
1. 首先先安装依赖 npm install weixin-js-sdk --save 2. app.vue文件 <script> export default { onLaunch: function(e) {}, onShow: function(e) { console.log(App Show页面初始); // 路由参数存缓存的 这是为了防止他…...

聊聊精益需求的产生过程
这是鼎叔的第七十八篇原创文章。行业大牛和刚毕业的小白,都可以进来聊聊。 欢迎关注本公众号《敏捷测试转型》,星标收藏,大量原创思考文章陆续推出。本人新书《无测试组织-测试团队的敏捷转型》已出版ÿ…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式
一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...

MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...

visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...

最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...

12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:
根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)
目录 一、👋🏻前言 二、😈sinx波动的基本原理 三、😈波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、🌊波动优化…...