当前位置: 首页 > news >正文

每日一题——LeetCode1128.等价多米诺骨牌对的数量

先尝试暴力解法:

var numEquivDominoPairs = function(dominoes) {var count=0for(let i=0;i<dominoes.length-1;i++){for(let j=i+1;j<dominoes.length;j++){if((dominoes[i][0]==dominoes[j][0] && dominoes[i][1]==dominoes[j][1]) || (dominoes[i][0]==dominoes[j][1] && dominoes[i][1]==dominoes[j][0])){count++}}}return count
};

 可惜时间超限:

直接参考官方解法,太巧妙了:

不妨直接让每一个二元对都变为指定的格式,即第一维必须不大于第二维。这样两个二元对「等价」当且仅当两个二元对完全相同。

注意到二元对中的元素均不大于 9,因此我们可以将每一个二元对拼接成一个两位的正整数,即 (x,y)→10x+y(x, y) 。这样就无需使用哈希表统计元素数量,而直接使用长度为 100的数组即可。

作者:力扣官方题解
链接:1128 官方题解

var numEquivDominoPairs = function(dominoes) {const num = new Array(100).fill(0);let ret = 0;for (const domino of dominoes) {const val = domino[0] < domino[1] ? domino[0] * 10 + domino[1] : domino[1] * 10 + domino[0];ret += num[val];num[val]++;}return ret;
};

消耗时间和内存情况:

http://www.lryc.cn/news/279890.html

相关文章:

  • 关联规则分析(Apriori算法2
  • 数据仓库(2)-认识数仓
  • C#编程-实现委托
  • Ubuntu18.04 Qt 实现MQTT
  • 【软件测试】学习笔记-不同视角的软件性能与性能指标
  • Spring MVC组件
  • vue文件在<template>中使用多个<el-main>报错(已解决)
  • 【PlantUML】- 时序图
  • openai自定义API操作 API (openai.custom):OpenAI API 实现电商平台的智能库存管理
  • 宠物服务新篇章:预约小程序带来的变革
  • 谷歌最新医学领域LLM大模型:AMIE
  • 路由器02_静态路由DHCP
  • Mysql 递归查询所有子节点,hutool树形结构封装
  • 【代码随想录04】24. 两两交换链表中的节点 19. 删除链表的倒数第 N 个结点 面试题 02.07. 链表相交 142. 环形链表 II
  • Pandas实战100例 | 案例 25: 计算相关系数
  • vue文本识别“\n“换行问题的解决方式
  • 【QT-UI】
  • MyBatisPlus逆向工程
  • 创建ESP32开源WiFi MAC(介质访问控制)层
  • LeetCode 2723. 两个 Promise 对象相加
  • Flutter--常用技术文档
  • 行分类问题
  • java常见面试题:如何使用Java进行XML解析和生成?
  • 【LabVIEW FPGA入门】LabVIEW FPGA实现I2S解码器
  • linux 安装sipp
  • c++最值查找
  • xtu-c语言考试复习-2
  • MySQL决战:MySQL数据导入导出
  • Unity 面试篇|(二)Unity基础篇 【全面总结 | 持续更新】
  • TIDB的忘了root用户密码和数据库密码解决办法