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

万联芯城网站建设广州天河区网站设计公司

万联芯城网站建设,广州天河区网站设计公司,设计类专业需要美术功底吗,大连大型网站制作公司可以使用 位运算 来解决这道题目。使用位运算的一个核心思想是基于数字的二进制表示&#xff0c;统计每一位上 1 的出现次数&#xff0c;并与期望的出现次数做比较。通过这种方法&#xff0c;可以推断出哪个数字重复。 class Solution { public:int findDuplicate(vector<i…

在这里插入图片描述
可以使用 位运算 来解决这道题目。使用位运算的一个核心思想是基于数字的二进制表示,统计每一位上 1 的出现次数,并与期望的出现次数做比较。通过这种方法,可以推断出哪个数字重复。

class Solution {
public:int findDuplicate(vector<int>& nums) {int n = nums.size() - 1; //这里注意是nums.size()-1,因为size是n + 1,所以数字取值范围是 [1,n]int countNum = 0; int expectedNum = 0;int result = 0;//遍历32位,题目n<=10^5,所以最大数也足够用32位来表示了for(int bit = 0; bit < 32; ++bit) {//遍历每一位时,首先需要在循环初始将这两个计数器清零。或者在循环末尾处清零。countNum = 0;expectedNum = 0;//设置掩码int mask = 1 << bit; //1左移bit位,每左移1次相当于乘2//然后数组中每个数字和当前mask进行与运算,判断当前位 值为1的数字个数for(int num : nums) {if(num & mask) {countNum++;}}//然后区间[1,n]每个数字与当前mask进行与运算,判断当前位 值为1的数字个数for(int i = 1; i <= n; ++i) {if(i & mask) {expectedNum++;}}//然后如果当前位的countNum > expectedNum, 说明重复数字在当前位的值为1;if(countNum > expectedNum) {result = result | mask;}//countNum = 0;//expectedNum = 0;}return result;}
};

解释:

  1. 由于 nums 数组长度是 n + 1,所以它包含从 1 到 n 的数字,且有一个重复数字。
  2. 我们逐位检查每一个 bit(从 0 到 31),统计 nums 数组中哪些数字在该位上是 1,接着统计从 1 到 n 的数字在该位上是 1 的个数。
  3. 如果 nums 中在某个位上的 1 的个数多于从 1 到 n 的数字在该位上的 1 的个数,说明重复的数字在该位上是 1。
  4. 最终通过将这些结果合并(使用按位或运算),我们就能得到重复的数字。

优点:

  • 这种方法的时间复杂度为 O(n * log n),因为我们要遍历每个 bit 位,而每次统计的复杂度为 O(n)
  • 空间复杂度为 O(1),因为只使用了常量级的额外空间。

这是一个比较巧妙的位运算解法,适用于这类寻找重复数的场景。

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

相关文章:

  • 网站建设 手机appneotv
  • 建设厅网站查询nginx安装wordpress失败
  • 网站建设策划方织梦网站访问量统计代码
  • 攀枝花建设规划网站福州模板建站定制网站
  • 网站建设怎么样做公司网站500元
  • 设计师专用网站怎么做二维码进入公司网站
  • 30_10_郑州网站制作全国手工活外发加工平台
  • 成都手机号码网站建设wordpress vip插件
  • 杭州旅游 网站建设精美wordpress模板
  • 类似微薄利网站怎么做中国建设银行蚌埠官方网站
  • 网络课程网站建设动漫制作软件
  • 如何引用网站上的资料做文献博客园网站开发
  • 网站上全景云台怎么做的qq推广开通
  • 长沙网站建设开发ps软件下载电脑版要钱吗
  • 海南建设网站公司阿坝网站制作
  • 尤溪网站建设陈巴尔虎旗网站建设
  • 网站设计与开发静态网页代码大全
  • 大良建站公司行业现状泉州网站建设服务
  • 网站建设情况 报告做设计网站赚钱吗
  • 网站开发个人感想莱芜在线论坛话题莱芜都市网
  • 做网站建设最好学什么蓝色脚手架织梦企业网站模板
  • 适合团购报名的网站开发制作网页时什么是错误的做法
  • 营销型网站有什么特点如何在微信平台做购买网站
  • 正能量网站有哪些php仿博客园网站
  • php做网站的公司有哪些广州网站建设 致茂
  • 毕设什么类型网站容易做做交互的网站
  • 网站建设模板制作前景模板网站官网
  • flash网站尺寸桂林
  • 网站静态化设计专门做珠宝的网站
  • 滑县网站建设哪家便宜捷克cz公司网站