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

【每日一题Day120】LC2341数组能形成多少数对 | 哈希表 排序

数组能形成多少数对【LC2341】

给你一个下标从 0 开始的整数数组 nums 。在一步操作中,你可以执行以下步骤:

  • nums 选出 两个 相等的 整数
  • nums 中 移除这两个整数,形成一个 数对

请你在 nums 上多次执行此操作直到无法继续执行。

返回一个下标从 0 开始、长度为 2 的整数数组 answer 作为答案,其中 answer[0] 是形成的数对数目,answer[1] 是对 nums 尽可能执行上述操作后剩下的整数数目。

哈希表

  • 思路:使用哈希表记录某个数字在这之前是否存在,然后遍历每一个数字,如果存在那么可以从nums中移除这两个整数,形成一个 数对;如果不存在那么将哈希表赋值为true。那么剩下的数字为数组长度-2*数对数目

  • 实现

    class Solution {public int[] numberOfPairs(int[] nums) {int n = nums.length;boolean[] flag = new boolean[101];int[] res = new int[2];for (int num : nums){if (flag[num]){res[0]++;flag[num] = false;}else{flag[num] = true;}}res[1] = n - 2 * res[0];return res;}
    }
    
    • 复杂度
      • 时间复杂度:O(n)O(n)O(n),n为数组长度
      • 空间复杂度:O(C)O(C)O(C),C为字符集大小,本题中为101

排序

  • 思路:将数组排序,从数组第一个元素开始遍历,如果nums[i]==nums[i+1],那么可以形成一个数对,指针向后移动两个;否则后移一位

  • 实现

    class Solution {public int[] numberOfPairs(int[] nums) {int n = nums.length;int[] res = new int[2];Arrays.sort(nums);int i = 0;while (i < n - 1){if (nums[i] == nums[i + 1]){res[0]++;i += 2;}else{i++;}}res[1] = n - 2 * res[0];return res;}
    }
    
    • 复杂度
      • 时间复杂度:O(nlogn)O(nlogn)O(nlogn),n为数组长度
      • 空间复杂度:O(1)O(1)O(1)
http://www.lryc.cn/news/8681.html

相关文章:

  • win11/10+opencv3.x/4.x配置 VS2019方法(简单使用,亲测)
  • HTTP协议---详细讲解
  • Syntax-Aware Aspect-Level Sentiment Classification with PWCN 论文阅读笔记
  • hadoop考试应急
  • 【React】Hooks
  • 升级Room引发的惨案!!
  • RPC框架:一文带你搞懂RPC
  • 电子招标采购系统源码—企业战略布局下的采购寻源
  • P16 激活函数与Loss 的梯度
  • ThinkPHP5美食商城系统
  • Vue3 - $refs 使用教程,父组件调用获取子组件数据和方法(setup() / <script setup>)
  • 华为OD机试 - 众数和中位数(Python)| 真题+思路+考点+代码+岗位
  • 一眼万年的 Keychron 无线机械键盘
  • 自动化测试高频面试题(含答案)
  • 3、按键扫描检测处理
  • 集中式存储和分布式存储
  • 【机器学习数据集】如何获得机器学习的练习数据?
  • 【编程实践】使用 Kotlin HTTP 框架 Fuel 实现 GET,POST 接口 kittinunf.fuel【极简教程】
  • 大数据DataX(一):DataX的框架设计和插件体系
  • 软考高级信息系统项目管理师系列之十一:项目进度管理
  • vue2版本《后台管理模式》(下)
  • 软考中级-程序设计语言
  • Sphinx : 高性能SQL全文检索引擎
  • ansible实战应用系列教程6:管理ansible变量
  • java8新特性Stream流中anyMatch和allMatch和noneMatch的区别详解
  • 双网卡(有线和wifi)同时连接内网和外网
  • 如何赋能智能运维,迈出数字化黑匣子第一步?
  • 消息称索尼计划为PS5推出两款蓝牙耳机,Find My蓝牙耳机用途广
  • 状态管理VueX
  • i.MX8MP平台开发分享(clock篇)- PLL14xx驱动