首页 > 其他分享 >2341. 数组能形成多少数对 (Easy)

2341. 数组能形成多少数对 (Easy)

时间:2023-02-28 16:55:42浏览次数:45  
标签:arr 2341 Easy nums 数对 形成 数组 移除

问题描述

2341. 数组能形成多少数对 (Easy)

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

  • nums 选出 两个 相等的 整数
  • nums 中移除这两个整数,形成一个 数对
    请你在 nums 上多次执行此操作直到无法继续执行。
    返回一个下标从 0 开始、长度为 2 的整数数组 answer 作为答案,其中 answer[0]
    是形成的数对数目, answer[1] 是对 nums 尽可能执行上述操作后剩下的整数数目。
    示例 1:
输入:nums = [1,3,2,1,3,2,2]
输出:[3,1]
解释:
nums[0] 和 nums[3] 形成一个数对,并从 nums 中移除,nums = [3,2,3,2,2] 。
nums[0] 和 nums[2] 形成一个数对,并从 nums 中移除,nums = [2,2,2] 。
nums[0] 和 nums[1] 形成一个数对,并从 nums 中移除,nums = [2] 。
无法形成更多数对。总共形成 3 个数对,nums 中剩下 1 个数字。

示例 2:

输入:nums = [1,1]
输出:[1,0]
解释:nums[0] 和 nums[1] 形成一个数对,并从 nums 中移除,nums = [] 。
无法形成更多数对。总共形成 1 个数对,nums 中剩下 0 个数字。

示例 3:

输入:nums = [0]
输出:[0,1]
解释:无法形成数对,nums 中剩下 1 个数字。

提示:

  • 1 <= nums.length <= 100
  • 0 <= nums[i] <= 100

解题思路

考虑到0 <= nums[i] <= 100,可以用长度为101的数组充当哈希表.

代码

class Solution {
public:
    vector<int> numberOfPairs(vector<int>& nums) {
        int arr[101] = {0};
        vector<int> res(2, 0);
        for (int i = 0; i < nums.size(); i++) {
            if (arr[nums[i]] == 0) {
                arr[nums[i]]++;
            } else {
                arr[nums[i]] = 0;
                res[0]++;
            }
        }
        for (int i = 0; i <= 100; i++) {
            if (arr[i] > 0) {
                res[1]++;
            }
        }
        return res;
    }
};

标签:arr,2341,Easy,nums,数对,形成,数组,移除
From: https://www.cnblogs.com/zwyyy456/p/17165044.html

相关文章

  • JavaScript Array(数组) 对象
    JavaScript Array(数组) 对象数组对象的作用是:使用单独的变量名来存储一系列的值。在线实例创建数组,为其赋值:实例varmycars=newArray();mycars[0]="Saab......
  • Java数组
    Java数组什么是数组数组是相同类型数据的有序集合。数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中,每一个数据成为一个数组元素,每个数组元素可......
  • 力扣---33. 搜索旋转排序数组
    整数数组nums按升序排列,数组中的值互不相同。在传递给函数之前,nums在预先未知的某个下标k(0<=k<nums.length)上进行了旋转,使数组变为[nums[k],nums[k+1],...,......
  • 数组
                         ......
  • 2023.02.28 - 数组扁平化处理||同结构嵌套数组对象中删除某个键值
    根据childrens字段递归扁平化数组(保留父元素)//方法一:根据childrens字段递归扁平化数组(保留父元素)functionflatten1(arr){"usestrict";if(!arr)return[]......
  • easypoi多sheet导出
    以前一直接触的是单sheet导出,这次的需求换成了多sheet导出,算是一个难点所以得记录一下底层关键的代码就是:privatestaticvoiddefaultExport(List<Map<String,Object>......
  • 通过使用online表单的获取使用,了解vue.js数组的常用操作
        在开发项目中,经常会遇到对数组的操作,比如对数组的数据进行删减或增加,同时也会对每个数组里的数据进行删减,下面就举个例子说明一下。   直接给一段代码getO......
  • mybatis plus映射postgreSQL数组
    首先自定义一个数组处理器packagecom.ctsy.l3a1.handler;importorg.apache.ibatis.type.BaseTypeHandler;importorg.apache.ibatis.type.JdbcType;importorg.apa......
  • 寻找旋转排序数组中的最小值---二分查找
    寻找二分排序数组中的最小值已知一个长度为n的数组,预先按照升序排列,经由1到n次旋转后,得到输入数组。例如,原数组nums=[0,1,2,4,5,6,7]在变化后可能得到:若旋转......
  • springboot集成easyexcel(阿里)
    poi比较占用内存。easyexcel性能优化不少,值得一看。pom.xml中添加:<dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.1.6</......