码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【每日一题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;
          }
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 复杂度

        • 时间复杂度: O ( n 2 ) O(n^2) O(n2)
        • 空间复杂度: O ( n ) O(n) O(n)
  • 相关阅读:
    Vue:v-on、v-bind、v-model、@click、:model用法以及区别(附代码实例)
    【华为OD机试-计算疫情扩散时间-Java】
    JavaGUI——Java图形用户界面
    un9.9:实现上报及上报状态修改功能。
    Java_常用API
    Kubernetes Helm的应用
    topic是什么
    [Spring Boot 2]整合持久层技术
    共话云原生数据库的未来
    大数据:SAS数据分析1,数据步,和过程步
  • 原文地址:https://blog.csdn.net/Tikitian/article/details/133921231
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号