【LeetCode:1726. 同积元组 | 哈希表】

news2024/12/27 12:46:43

在这里插入图片描述

🚀 算法题 🚀

🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀
🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨
🌲 作者简介:硕风和炜,CSDN-Java领域新星创作者🏆,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享💎💎💎
🌲 恭喜你发现一枚宝藏博主,赶快收入囊中吧🌻
🌲 人生如棋,我愿为卒,行动虽慢,可谁曾见我后退一步?🎯🎯

🚀 算法题 🚀

在这里插入图片描述

在这里插入图片描述

🍔 目录

    • 🚩 题目链接
    • ⛲ 题目描述
    • 🌟 求解思路&实现代码&运行结果
      • ⚡ 哈希表
        • 🥦 求解思路
        • 🥦 实现代码
        • 🥦 运行结果
    • 💬 共勉

🚩 题目链接

  • 1726. 同积元组

⛲ 题目描述

给你一个由 不同 正整数组成的数组 nums ,请你返回满足 a * b = c * d 的元组 (a, b, c, d) 的数量。其中 a、b、c 和 d 都是 nums 中的元素,且 a != b != c != d 。

示例 1:

输入:nums = [2,3,4,6]
输出:8
解释:存在 8 个满足题意的元组:
(2,6,3,4) , (2,6,4,3) , (6,2,3,4) , (6,2,4,3)
(3,4,2,6) , (4,3,2,6) , (3,4,6,2) , (4,3,6,2)
示例 2:

输入:nums = [1,2,4,5,10]
输出:16
解释:存在 16 个满足题意的元组:
(1,10,2,5) , (1,10,5,2) , (10,1,2,5) , (10,1,5,2)
(2,5,1,10) , (2,5,10,1) , (5,2,1,10) , (5,2,10,1)
(2,10,4,5) , (2,10,5,4) , (10,2,4,5) , (10,2,4,5)
(4,5,2,10) , (4,5,10,2) , (5,4,2,10) , (5,4,10,2)

提示:

1 <= nums.length <= 1000
1 <= nums[i] <= 104
nums 中的所有元素 互不相同

🌟 求解思路&实现代码&运行结果


⚡ 哈希表

🥦 求解思路
  1. 首先,我们先来一步一步分析,题目让我们求解的是满足 a * b = c * d 的元组 (a, b, c, d) 的数量,并且a != b != c != d 。需要注意是,题目中直接说明了不会给定重复的元素,所以,我们不需要考虑某一个元素多次出现的情况。
  2. 首先,我们先考虑,如果找到了一种满足题目要求的结果会给最终的答案贡献多少?比如: 2 * 6 = 3 * 4 ,对于这四个不同的数字,它最终贡献的结果为8,为什么呢?22+22=8。
  3. 现在我们知道了具体的一种情况,那接下来我们通过双重循环去遍历数组中的每一个元素,然后通过一个map集合来去记录状态,map中的key维护的是俩个元素的乘积,value就是这个key出现的次数,如果key是不存在的,先将元素的乘积以及出现的次数存储起来,但是如果key是存在的,此时我们获取当前key的出现次数value,然后用value*8,记录到最终的结果,最终,不要忘了将当前key出现的次数再次加1。
  4. 具体求解的过程步骤请看下面代码。
🥦 实现代码
class Solution {
    public int tupleSameProduct(int[] nums) {
        int res=0;
        int n=nums.length;
        HashMap<Integer,Integer> map=new HashMap<>();
        for(int i=0;i<n;i++){
            for(int j=i+1;j<n;j++){
                int num=nums[i]*nums[j];
                if(map.containsKey(num)){
                    int v=map.get(num);
                    res+=v*8;
                    map.put(num,map.get(num)+1);
                }else{
                    map.put(num,1);
                }
            }
        }
        return res;
    }
}
🥦 运行结果

在这里插入图片描述


💬 共勉

最后,我想和大家分享一句一直激励我的座右铭,希望可以与大家共勉!

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1109854.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Echarts:双折线图的值一样,高度却不一样

问题 在使用Echarst绘制双折线图的时候&#xff0c;2条线在相同的横坐标下&#xff0c;y轴的值是一样的&#xff0c;但是展示在图上的时候2条折线在那个横坐标值下的高度却不一样即xx1时&#xff0c;y12&#xff0c;y22&#xff0c;但是显示在图上的却是&#xff1a;xx1时&…

Kafka Tool(Kafka 可视化工具)安装及使用教程

Kafka Tool&#xff08;Kafka 可视化工具&#xff09;安装及使用教程 Kafka Tool 工具下载 下载地址 http://www.kafkatool.com/download.html 下载界面 不同版本的Kafka对应不同版本的工具&#xff0c;个人使用的是2.11&#xff0c;所以下载的是最新的2.0.8版本&#xff…

璞华科技再次赋能,助力成都市温江区“码”上维权不烦“薪” !

科技赋能护“薪”行动 “码”上维权不烦“薪” 为保障劳动者工资收入的合法权益&#xff0c;提升人社部门智能化咨询服务能力&#xff0c;2023年10月17日&#xff0c;成都市温江区人力资源和社会保障局发布“码上护薪”小程序&#xff0c;助力劳动者“码”上维权不烦”薪”。…

Ant Design Form表单组件手动清楚校验信息(提示文字及红框)

出现场景 当我们的表单项是按条件验证的情况&#xff0c;或者该表单项是不可编辑然后是关联赋值&#xff08;比如选择某个下拉框&#xff0c;赋上关联值&#xff09;&#xff0c;并且你还先点击了按钮进行验证&#xff0c;那么即使赋上了值也不能触发该表单二次验证。所以就需…

ZGC关键技术分析

一、引言 垃圾回收对于Javaer来说是一个绕不开的话题&#xff0c;工作中涉及到的调优工作也经常围绕垃圾回收器展开。面对不同的业务场景没有一个统一的垃圾回收器能保证可GC性能。因此对程序员来说不仅要会编写业务代码&#xff0c;同时也要卷一下JVM底层原理和调优知识。这种…

tika解压遇到压缩炸弹如何继续解压

1.问题 项目中要对10层压缩的zip、7z等文件用tika解压遇到错误&#xff1a;tika zip bomb detected 也就是说tika认为这是个压缩炸弹。 “压缩炸弹”是一个压缩包文件的木马程序&#xff0c;通常只有几百KB&#xff0c;解压后会变成上百MB或者上GB庞然大物。把你本地磁盘占满…

PTE-精听学习(三)

目录 WFD 答题技巧 多写单词不扣分数 RS 只有三秒钟准备时间 空挡时间1-2秒钟 WFD 犹豫 扣分点 fluency 单词一致顺序也是一致 总会有题目简单到有短又容易理解 预测的命中率 抽屉理论 印度发音其实是算标准的 反正就是归于模仿 影子跟读法 打拍子 看前缀…

UE4 Ultradynamicsky进行地面交互

第一步&#xff1a; 找到地面材质&#xff0c;进入地面材质 找到该节点 找到之前本该连在这里的&#xff0c;现在连到这个节点上&#xff0c;然后把这个节点的输出连到材质输出节点上 新建一个物理材质 然后给过来 找到Ultra_Dynamic_Weather&#xff0c;把Enable Dynamic Lan…

airflow报ModuleNotFoundError: No module named ‘dags‘原因和解决方法

ModuleNotFoundError: No module named ‘dags’ 原因&#xff1a;airflow默认是从dags目录下开始搜所有模块&#xff0c;如果你加上dags目录名&#xff0c;就相当于在dags目录下找dags包。 解决方法&#xff1a;导入的时候&#xff0c;去掉dags&#xff0c;详细可以参考下面案…

Python中的With ...as... 作用

Python中的with … as …作用&#xff1a; 1、通过with语句可以得到一个上下文管理器 2、执行对象 3、加载__enter__方法 4、加载__exit__方法 5、执行__enter__方法 6、as 可以得到enter的返回值 7、拿到对象执行相关操作 8、执行完了之后调用__exit__方法 9、如果遇到异常&a…

Android之使用GirdLayoutManager时候给Item设置边距

效果&#xff1a; 一、自定义设置边距方法 SpaceItemDecoration.java package com.custom.jfrb.ui.jfrb.finishedProduct; //自己包名位置import android.graphics.Rect; import android.view.View;import androidx.annotation.NonNull; import androidx.recyclerview.widg…

threejs(2)-Geometry进阶详解

一、全面讲解UV与应用 在本节中&#xff0c;我们将讨论Three.js中的UV映射&#xff0c;包括UV映射的概念、与顶点位置的关系和区别以及如何在Geometry中设置UV坐标。我们将使用BufferGeometry进行示例说明。 颜色对应 什么是UV映射&#xff1f; UV映射是一种将二维纹理映…

【根据车间号[81321000]未找到ERP逻辑仓】

以条码Z42310062781622举例&#xff0c;WMS集成报错。 先说业务逻辑&#xff1a; 新建包装工单&#xff0c;维护包装批次管制时&#xff0c;会把包装批次管制里的部门信息传给115。 赛龙捷包装后&#xff0c;会根据115里的这个部门对应的车间号&#xff0c;返还给MES。 MES会…

程序连接oracle查询数据的环境配置

连接oracle 数据库真麻烦&#xff0c;还是MySQL方便 Oracle Instant Client 这个东西的版本跟oracle的版本是有讲究的&#xff0c;引用文档的说明 Oracle 标准的客户端-服务器网络互操作性允许不同版本的 Oracle 客户端和 Oracle 数据库之间的连接。有关经过认证的配置&#…

springboot之quartz动态可控定时任务

Quartz Quartz是一个开源的任务调度框架&#xff0c;可以用来实现定时任务的调度&#xff0c;如定时发送邮件、定时备份数据等。Quartz具有很高的可靠性和灵活性&#xff0c;支持集群部署和分布式调度&#xff0c;并且提供了丰富的API和插件&#xff0c;可以轻松实现复杂的调度…

2023年中国GPS导航设备产量、销量及市场规模分析[图]

GPS导航设备行业是指生产和销售用于导航、定位和监控目的的GPS设备的行业&#xff0c;可以用于汽车、船只、飞机、人员和其他物体的定位和导航&#xff0c;以及用于地理信息系统&#xff08;GIS&#xff09;、测绘、海洋抢险、森林监测、地质勘探、气象预报、交通管理、物流跟踪…

中国地级市-环境规制18个相关指标数据(2002-2021年)

本次数据为地级市-环境规制相关指标&#xff0c;主要用于计算城市的环境规制、污染排放水平。指标数目总计18个&#xff0c;数据来源为《中国城市统计年鉴》&#xff0c;存在一定缺失。数据包含原始、线性插值、回归填补3个版本&#xff0c;希望对大家有用 一、数据介绍 数据…

uni-app:js二维数组与对象数组之间的转换

一、二维数组整理成对象数组 效果 [ ["前绿箭","DI10","RO1"], ["前红叉","DI2","RO2"], ["后绿箭","DI12","RO3"], ["后红叉","DI4","RO6"] ] …

2023国考证件照要求什么底色?证件照换背景底色的方法

2023年国家公务员考试报名已经开始了&#xff0c;我们在考试平台提交报名信息的时候&#xff0c;有一项就是需要上传证件照片&#xff0c;对于证件照片也会有具体的要求&#xff0c;比如背景底色、尺寸大小、dpi和kb大小。今天就为大家详细介绍一下关于国考证件照背景色的内容&…

数据结构与算法课后题-第六章(图的存储及基本操作)

文章目录 1、选择题12、选择题23、选择题34、选择题45、选择题56、选择题67、选择题78、选择题89、选择题910、选择题1011、选择题1112、选择题1214、选择题1415、选择题1516、选择题16 1、选择题1 2、选择题2 3、选择题3 4、选择题4 5、选择题5 6、选择题6 7、选择题7 8、选择…