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

.jsp网站开发技术泉州建站模板厂家

.jsp网站开发技术,泉州建站模板厂家,网站建好了怎么做,学做土建资料员的网站一.题目描述 消失的两个数字 二.思路分析 本题难度标签是困难#xff0c;但实际上有了只出现一次的数字iii这道题的铺垫#xff0c;本题的思路还是很容易想到的。 温馨提示#xff1a;阅读本文前可以先查看我的【位运算】专栏的第一篇文章#xff0c;其中包含位运算这类…一.题目描述 消失的两个数字 二.思路分析 本题难度标签是困难但实际上有了只出现一次的数字iii这道题的铺垫本题的思路还是很容易想到的。 温馨提示阅读本文前可以先查看我的【位运算】专栏的第一篇文章其中包含位运算这类题型的常用技巧以及前面这道题的讲解。 言归正传这道题最容易想到的解法应该是哈希表遍历数组用哈希表记录每个元素出现的次数。然后再遍历哈希表出现次数为0的元素就是我们要找的答案。但是空间复杂度为O(n)不符合题目要求。 下面介绍位运算的方法 若数组的长度为n则数组缺少了[1, n2]中的两个数。 先将从1到n2的所有整数异或在一起然后再异或数组的每个元素。异或的特点是“消消乐”即两个相同的数异或会变成0故最终的结果tmp相当于这两个缺失的数异或。 这两个数既然不同那么它们至少有一个比特位不一样我们可以遍历tmp的每一个比特位如果它是1则说明两个数的这一位不相同异或的规则是相异为1记录这一位置。 随后我们根据这一比特位的不同将[1,n2]的整数以及数组的所有元素划分为两组分别进行异或相同的元素会消去最终得到的就是我们要找的两个数。 三.代码实现 class Solution { public:vectorint missingTwo(vectorint nums) {int n nums.size();int tmp 0;//将所有数异或在一起for (int i 1; i n 2; i){tmp ^ i;}for (auto e : nums){tmp ^ e;}//找出缺失的两个数字哪一比特位不相同int pos 0;for (int i 0; i 31; i){if (((tmp i) 1) 1){pos i;break;}}//根据这一比特位不同,划分为两组分别异或int ret1 0, ret2 0;for (int i 1; i n 2; i){if (((i pos) 1) 1){ret1 ^ i;}else{ret2 ^ i;}}for (auto e : nums){if (((e pos) 1) 1){ret1 ^ e;}else{ret2 ^ e;}}return {ret1, ret2};} }; 欢迎进入我的主页翻阅算法专栏学习更多有趣的算法。
http://wiki.neutronadmin.com/news/245222/

相关文章:

  • 重庆企业建站系统模板阿里云网站商城建设
  • 景区网站建设材料云主机建网站
  • 关于网站建设广告词重庆网站推广公司电话
  • 网站开发角色分类腾讯建设网站视频视频
  • 衡水seo网站建设优化排名东莞企业网站搭建制作
  • 做网站推广怎样才能省钱五华网站开发
  • 三合一企业网站模板app 推广
  • 天津 公司网站建设用python网站开发
  • 电商网站设计模板自己买服务器做网站
  • 网站项目策划书模板淘宝客网站虚拟主机
  • 浙江省住房和城乡建设局网站一个网站同时做百度和360 百度商桥都可以接收客户信息吗
  • 湖南网站建设策划室内空间设计网站推荐
  • 做网站的叫什么微网站 下载
  • 做安全题目是哪个网站营销词汇100个
  • 网站开发逻辑图如何开公众号微信公众平台
  • 想做一个网站个人业务网站建设
  • 做网站的素材包含哪些响应式品牌网站
  • 征求网站建设意见的通知如何做好网站推广
  • 郑州网站设计推荐南京高端网站建设公司哪家好
  • 怎么上传网站到空间用帝国cms做的网站首页
  • 上海明鹏建设集团有限公司网站网络文化有限公司网站建设策划书
  • 企业建立网站的优势企业vi设计欣赏
  • 手机网站打不开的解决方法WordPress的footer文件
  • 深圳网站优化技巧网站建设源码开发
  • 哪家微网站做的好北京的制作网站的公司有哪些
  • 淮北建网站网站访客
  • 网站模板 电器智能展厅设计公司
  • 湖南省邵阳建设局网站琳琅秀网站建设
  • 自己可以做网站推广吗孵化器网站平台建设
  • 焦作建设银行门户网站网站界面是什么做的