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

泉州网站建设dreamnm运城网站建设多少钱

泉州网站建设dreamnm,运城网站建设多少钱,中国十大it培训机构排名,效果图外包剑指 Offer 56 - I. 数组中数字出现的次数 难度#xff1a;middle\color{orange}{middle}middle 题目描述 一个整型数组 numsnumsnums 里除两个数字之外#xff0c;其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n)#xff0c;空间复杂度…剑指 Offer 56 - I. 数组中数字出现的次数 难度middle\color{orange}{middle}middle 题目描述 一个整型数组 numsnumsnums 里除两个数字之外其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n)空间复杂度是O(1)。 示例 1 输入nums [4,1,4,6] 输出[1,6] 或 [6,1]示例 2 输入nums [1,2,10,4,1,4,3,3] 输出[2,10] 或 [10,2]限制 2nums.length100002 nums.length 100002nums.length10000 算法 (位运算) 如果除了一个数字以外其他数字都出现了两次那么如何找到出现一次的数字 全员进行异或操作即可。考虑异或操作的性质对于两个操作数的每一位相同结果为 0不同结果为 1。那么在计算过程中成对出现的数字的所有位会两两抵消为 0最终得到的结果就是那个出现了一次的数字。 那么这一方法如何扩展到找出两个出现一次的数字呢 如果我们可以把所有数字分成两组使得 两个只出现一次的数字在不同的组中 相同的数字会被分到相同的组中。 那么对两个组分别进行异或操作即可得到答案的两个数字。这是解决这个问题的关键。 那么如何实现这样的分组呢 记这两个只出现了一次的数字为 a 和 b那么所有数字异或的结果就等于 a 和 b 异或的结果我们记为 x。如果我们把 x 写成二进制的形式 xkxk−1...x2x1x_kx_{k-1}...x_2x_1xk​xk−1​...x2​x1​其中 xi∈0,1x_i∈ {0,1}xi​∈0,1我们考虑一下 xix_ixi​ 0 和 xix_ixi​ 1 的含义是什么它意味着如果我们把 a 和 b 写成二进制的形式​aia_iai​ 和 bib_ibi​ 的关系 xix_ixi​ 1 表示 aia_iai​ 和 bib_ibi​ 不等xix_ixi​ 0 表示 aia_iai​ 和 bib_ibi​ ​ 相等。假如我们任选一个不为 0 的 ​ xix_ixi​ 按照第 i 位给原来的序列分组如果该位为 0 就分到第一组否则就分到第二组这样就能满足以上两个条件为什么呢 首先两个相同的数字的对应位都是相同的所以一个被分到了某一组另一个必然被分到这一组所以满足了条件 2。 这个方法在 xix_ixi​ 1 的时候 a 和 b 不被分在同一组因为 xix_ixi​ 1 表示 aia_iai​ 和 bib_ibi​ 不等根据这个方法的定义「如果该位为 0 就分到第一组否则就分到第二组」可以知道它们被分进了两组所以满足了条件 1。 在实际操作的过程中我们拿到序列的异或和 x 之后对于这个「位」是可以任取的只要它满足 xix_ixi​ 1。但是为了方便这里的代码选取的是「不为 0 的最低位」当然你也可以选择其他不为 0 的位置。 复杂度分析 时间复杂度O(n)O(n)O(n)其中 nnn 是数组的长度。 空间复杂度 : O(1)O(1)O(1) C 代码 class Solution { public:vectorint singleNumbers(vectorint nums) {int ret 0;// a or b resultfor (auto num : nums) {ret ^ num;}// search 1int div 1;while ((div ret) 0) div 1;int a 0, b 0;for (int n : nums) {if (div n)a ^ n;else b ^ n;}return vectorint{a, b};} };
http://www.dnsts.com.cn/news/62659.html

相关文章:

  • 万网建设网站的步骤做网站找哪家好 07月
  • 网站开发中 视频播放卡上海人力资源招聘官网
  • 免费网站后台管理模板下载软件开发培训机构哪个好
  • 借贷网站建设方案免费建站免费网站
  • 开发网站步骤新上线的网站怎么做优化
  • 沈阳做网站推广外发加工网查询
  • 东单网站建设深圳知名网站设计公司
  • 苏州市建设厅网站桂林天然网络科技有限公司
  • 海南省住房与城乡建设部网站wordpress 去掉wordpress
  • 广州网站开发设计平台锚文本外链查询网站
  • 网站设计团队分工在线网站制作工具
  • wap建站后只能访问首页seo实战论坛
  • 做仿站如何修改网站管理权限wordpress 微信编辑器插件下载
  • 承德网站开发公司四大门户网站对比分析
  • 万和城官方网站wp网站建设
  • 网站做管理员功能代码wordpress 页面下载文件
  • canvas做的网站域名和网站空间相互做解析
  • 杭州建设网官方网站太原建设局网站
  • 班级网站主页怎么做网站主题和风格
  • 做网站后台有前途吗学动漫插画的培训机构
  • 鹤庆县公路建设网站开发一平方多少钱
  • 网站游戏网站怎么自己做成立网站
  • 漳州微信网站开发网站设计哪家
  • 建设信用卡手机银行官方网站vs2017 网站开发环境
  • 欧模网室内设计效果图seo公司厦门
  • 贵州省遵义市住房城乡建设局网站浏览器打开网址
  • 营销型网站建设的费用报价单专门做网站的科技公司
  • 做高考题的网站廊坊森德科技有限公司
  • 如何建网站快捷方式服装公司网站策划书
  • 威海外贸建站五金外贸网站