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

网站维护的内容主要包括源码屋整站源码

网站维护的内容主要包括,源码屋整站源码,虚拟主机名词解释,wordpress 自建cdnHalo,这里是Ppeua。平时主要更新C语言,C,数据结构算法......感兴趣就关注我吧!你定不会失望。 🌈个人主页:主页链接 🌈算法专栏:专栏链接 我会一直往里填充内容哒! &…

Halo,这里是Ppeua。平时主要更新C语言,C++,数据结构算法......感兴趣就关注我吧!你定不会失望。

🌈个人主页:主页链接

🌈算法专栏:专栏链接

     我会一直往里填充内容哒!

🌈LeetCode专栏:专栏链接 

    目前在刷初级算法的LeetBook 。若每日一题当中有力所能及的题目,也会当天做完发出

🌈代码仓库:Gitee链接

🌈点击关注=收获更多优质内容🌈

 

这道题十分的简单 给出了两种做法,一种自己写的 一种官解,都有可取之处

目录

题目:

白话讲解:

题例:

题解:

排序消除法:

代码实现:

官解:哈希表:

代码实现:

完结撒花:


题目:

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

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

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

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

白话讲解:

返回数组中相同数字的对数,以及不成对数字的个数

题例:

输入: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 个数字。

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

题解:

排序消除法:

将数组进行排序,此时若有成对出现的数字必然是相邻的,所以创建两个指针,对相邻的数进行判断.

若这两个数字相同,则计数,i指针跳到下一对数字,

若这两个数字不同,则计数,i往下移一位

最后就是当i==n-2的时候为什么直接让不同数字的计数器直接加1呢?

我们来分析以下上面情况会使i==n-2 

1:当出现 最后两个数字不同的时候,此时只会将计数器+1,但因为最后两位了 也就是n-2的情况,所以直接再+1就行了

 2:当出现倒数第三个与倒数第二个数字相同的时候,此时i变位到j的地方,因为最后也只剩下一位数字了,也已经不可能相同了,所以直接+1就可以

也就是说,当i经历完之前的判断时,他指向的数字位数是倒数第二位的时候,无论如何最后一位都不可能与其相同(若相同 则在if中就前进了一步)

代码实现:

class Solution {
public:vector<int> numberOfPairs(vector<int>& nums) {int n=nums.size(),cnt=0,cnt1=0;if(n==1)return{0,1};sort(nums.begin(),nums.end());for(int i=0,j=1;i<n-1;){   j=i+1;if(nums[i]==nums[j]){cnt++;i=j;}elsecnt1++;if(i==n-2)cnt1++;i++;}return {cnt,cnt1};}
};

官解:哈希表:

创建一个以数字为key,bool值为value的哈希表,初始值均为false,

之后遍历读入每一个数字,若这个数字对应的value为false 则置为true,反之 

若被置为false 则计数器++,未成对出现的数字个数就为总长度减去成对出现的个数*2

代码实现:

class Solution {
public:vector<int> numberOfPairs(vector<int>& nums) {unordered_map<int, bool> cnt;int res = 0;for (int num : nums) {if (cnt.count(num)) {cnt[num] = !cnt[num];} else {cnt[num] = true;}if (!cnt[num]) {res++;}}return {res, (int)nums.size() - 2 * res};}
};

完结撒花:

🌈本篇博客的内容【Leetcode 每日一题 2341. 数组能形成多少数对】已经结束。

🌈若对你有些许帮助,可以点赞、关注、评论支持下博主,你的支持将是我前进路上最大的动力。

🌈若以上内容有任何问题,欢迎在评论区指出。若对以上内容有任何不解,都可私信评论询问。

🌈诸君,山顶见!

http://www.yayakq.cn/news/643399/

相关文章:

  • 站长之家ip查询工具母婴网站建设的与功能模块
  • 网站管理系统推荐上海平台网站建设平台
  • 番禺制作网站技术wordpress里面如何加载百度地图
  • 织梦网站tel标签阿里云网站建设最后什么样子
  • 腾讯云服务器怎么搭建网站ssh网站怎么做
  • 做通信毕业设计的网站wordpress过滤
  • 北京未来科技城开发建设有限公司 网站编程猫的网站是什么
  • 寻找外贸客户的网站如何跟进网站建设的客户
  • 建设一个本地网站东莞seo优化公司
  • 不拦截网站的浏览器本地安装wordpress步骤
  • 精美网站设计欣赏建设网站建设方案
  • 网站keywords多少字网站建设柒首先金手指7
  • 广州制作公司网站的公司wordpress切换div组件
  • 做网站电话沧州南充房产信息
  • 做网站用哪个写比较好wordpress商品展示模板
  • 知了网站后台wordpress 外框
  • 表单大师 做网站京东电器商城网上购物
  • strikingly建站工具手机app应用开发软件
  • 网推网站东莞如何建网站费用
  • 做购买网站营销系统软件
  • 九台网站在线制作图片视频
  • 网站开发费入什么费用小程序源码出售
  • 网站栏目设置国家合同模板网站
  • 我有域名跟空间能教我做网站吗wordpress 4.2.20
  • 注册网站花的钱做会计分录国内电商运营是做什么的
  • 做网站和做软件一样吗文化建设设计网站
  • linux系统网站空间网络营销 网站建设
  • 网站开发报价明细今天发生的国外重大时事新闻
  • 做彩票网站需要学习什么网络规划与设计参考文献
  • 企业网站建设模版wordpress增加h5网页