【LeetCode】每日一题(5)

简介: 【LeetCode】每日一题(5)

题目:2341. 数组能形成多少数对 - 力扣(Leetcode)


题目的接口:

class Solution {
public:
    vector numberOfPairs(vector& nums) {
    }
};

解题思路:

做了一个星期的每日一题,终于终于,力扣出了一道简单题,真是快乐。


这道题的思路很简单,


我的解法是:


遍历数组,直接用哈希计数,当达成题目条件,也就是形成数对的时候,


重置那个数的计数,cnt++,再继续遍历,


最后再遍历哈希表,把不成数对的数的个数加在一起,


将cnt 和 不成数对的数的个数和返回即可。


代码:

class Solution {
public:
    vector numberOfPairs(vector& nums) {
        //建一个哈希
        unordered_map map;
        int cnt = 0;
        //遍历数组
        for(const auto& e : nums)
        {
            //计数
            map[e]++;
            //形成数对,重置计数
            if(map[e] == 2)
            {
                map[e] = 0;
                cnt++;
            }
        }
        int sum = 0;
        //遍历哈希,计算剩余数字个数
        for(const auto& e : map)
        {
            sum += e.second;
        }
        return {cnt, sum};
    }
};


过啦!!!

不管怎么说,之前的题目或多或少有借鉴大佬的解题思路,


每次看题解的时候总是觉得:


这怎么想的出来啊,太妙了,站在巨人的肩膀上真的很幸福,


当真正完全用自己的思路写出题目(而且还不是无脑暴力题解的时候)


真的是非常有成就感,心情见小标题:过啦!!!



写在最后:

以上就是本篇文章的内容了,感谢你的阅读。


如果喜欢本文的话,欢迎点赞和评论,写下你的见解。


如果想和我一起学习编程,不妨点个关注,我们一起学习,一同成长。


之后我还会输出更多高质量内容,欢迎收看。


相关文章
|
2月前
|
索引
leetcode每日一题刷题打卡1700
leetcode每日一题刷题打卡1700
26 0
|
22天前
力扣每日一题 6/2
力扣每日一题 6/2
12 3
|
22天前
力扣每日一题 5/29
力扣每日一题 5/29
13 3
|
22天前
力扣每日一题 6/7
力扣每日一题 6/7
15 3
|
22天前
|
机器学习/深度学习
力扣每日一题 5/31
力扣每日一题 5/31
16 2
|
22天前
|
算法
力扣每日一题 6/10
力扣每日一题 6/10
22 1
|
12月前
LeetCode】每日一题(4)
LeetCode】每日一题(4)
30 0
|
12月前
【LeetCode】每日一题(3)
【LeetCode】每日一题(3)
42 0
|
7月前
|
算法 C语言 索引
每日一题:LeetCode-283. 移动零
每日一题:LeetCode-283. 移动零
|
9月前
|
存储 Java
力扣-每日一题
给你一个 32 位的有符号整数 x ,返回 x 中每位上的数字反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。 假设环境
35 0