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

中电科工程建设有限公司网站bt最佳磁力搜索引擎

中电科工程建设有限公司网站,bt最佳磁力搜索引擎,给小说网站做编辑,深圳高端租车公司【前言】本文以及之后的一些题解都会陆续整理到目录中,若想了解全部题解整理,请看这里: 第0006页 寻找重复数 今天想讨论的一道题在 LeetCode 上评论也是颇为“不错”。有一说一,是道好题,不过我们还是得先理解了它才…

【前言】本文以及之后的一些题解都会陆续整理到目录中,若想了解全部题解整理,请看这里:

第0006页 · 寻找重复数

        今天想讨论的一道题在 LeetCode 上评论也是颇为“不错”。有一说一,是道好题,不过我们还是得先理解了它才算真正的好题。这里我们展示一种使用二进制的做法,希望能帮到你哟!

【寻找重复数】给定一个包含 n + 1 个整数的数组 nums ,其数字都在 [1, n] 范围内(包括 1 和 n),可知至少存在一个重复的整数。现在假设 nums 只有一个重复的整数,请返回这个重复的数。要求:你设计的解决方案必须不修改数组 nums 且只用常量级 O(1)的额外空间。

示例1示例2示例3
输入:nums = [1, 3, 4, 2, 2]输入:nums = [3, 1, 3, 4, 2]输入:nums = [3, 3, 3, 3, 3]
输出:2输出:3输出:3

【解题分析】这道题目最难的地方莫过于它的要求:只能使用常量级的额外空间!既然不能用一般的方法,我们便另辟蹊径,对所有数 [1, n] 进行二进制展开,举个例子如下表所示:

13422xy
第 0 位11

0

0022
第 1 位0101132
第 2 位0010011

        对于第 i 位,我们用 x 记录 nums 中所有数满足二进制形式下第 i 位是 1 的数量有多少。用 y 记录 1 ~ n 中所有数在二进制形式下第 i 位是 1 的数量应该有多少。

        比如说,上表中第 0 位,nums 中的数有 2 个的二进制形式该位为 1,而 1 ~ 4 中该位为 1 的数有 2 个。 

        那么怎么找出重复的数呢?假设重复的数是 k,那么,对于 k 二进制展开后所有为 1 的数位必定会导致 x > y

        但是这个结论我们还是需要证明一下的。

【证明】

        如果 nums 数组中 target 出现了 2 次,其余的数各出现了 1 次,那么如果 target 的第 i 位为 1,那么 nums 数组的第 i 位 1 的个数 x 恰好比 y 大了 1。如果 target 的第 i 位为 0,那么 x = y。

        如果 nums 数组中 target 出现了 3 次及以上,那么必然有一些数不在 nums 数组中。这个时候就相当于我们用 target 替换了这些数,我们要考虑的就是这样的替换对 x 会产生什么影响:       

        1、如果被替换的数第 i 位为 1,且 target 第 i 位为 1:x 不变,满足 x>y。
        2、如果被替换的数第 i 位为 0,且 target 第 i 位为 1:x 加一,满足 x>y。
        3、如果被替换的数第 i 位为 1,且 target 第 i 位为 0:x 减一,满足 x≤y。
        4、如果被替换的数第 i 位为 0,且 target 第 i 位为 0:x 不变,满足 x≤y。

        总而言之,在替换后,如果 target 的第 i 位为 1,那么始终满足 x > y;如果为 0,那么每次替换后始终满足 x ≤ y。因此,接下来我们只需要按照位次复原这个数就可以了。

 

【源码展示】

class Solution {
public:int findDuplicate(vector<int>& nums) {int n = nums.size(), ans = 0;// 确定二进制下最高位是多少int bit_max = 31;while (!((n - 1) >> bit_max)) {bit_max -= 1;}for (int bit = 0; bit <= bit_max; bit++) {int x = 0, y = 0;for (int i = 0; i < n; ++i) {if (nums[i] & (1 << bit)) {x += 1;}if (i >= 1 && (i & (1 << bit))) {y += 1;}}if (x > y) {ans |= 1 << bit;}}return ans;}
};

文章转载自:
http://exhilaration.rzgp.cn
http://riveter.rzgp.cn
http://praecipe.rzgp.cn
http://propound.rzgp.cn
http://catabaptist.rzgp.cn
http://housebreaker.rzgp.cn
http://naturalization.rzgp.cn
http://caudad.rzgp.cn
http://meliorable.rzgp.cn
http://rebate.rzgp.cn
http://madness.rzgp.cn
http://undelighting.rzgp.cn
http://skikda.rzgp.cn
http://mister.rzgp.cn
http://tokonoma.rzgp.cn
http://shark.rzgp.cn
http://irrefrangible.rzgp.cn
http://adventitious.rzgp.cn
http://pistache.rzgp.cn
http://damagingly.rzgp.cn
http://fibro.rzgp.cn
http://crucifixion.rzgp.cn
http://hitchy.rzgp.cn
http://showroom.rzgp.cn
http://hurtlingly.rzgp.cn
http://fireplug.rzgp.cn
http://malaysian.rzgp.cn
http://semispherical.rzgp.cn
http://eightball.rzgp.cn
http://koei.rzgp.cn
http://communicatory.rzgp.cn
http://handcuffs.rzgp.cn
http://christless.rzgp.cn
http://articulate.rzgp.cn
http://calculation.rzgp.cn
http://browse.rzgp.cn
http://ganof.rzgp.cn
http://skfros.rzgp.cn
http://luganda.rzgp.cn
http://xylenol.rzgp.cn
http://menticide.rzgp.cn
http://sweatproof.rzgp.cn
http://entrepot.rzgp.cn
http://sezessionist.rzgp.cn
http://welshie.rzgp.cn
http://nonce.rzgp.cn
http://igfet.rzgp.cn
http://poussin.rzgp.cn
http://priapism.rzgp.cn
http://plo.rzgp.cn
http://beemistress.rzgp.cn
http://uvedale.rzgp.cn
http://stanch.rzgp.cn
http://hydropic.rzgp.cn
http://homoscedasticity.rzgp.cn
http://arciform.rzgp.cn
http://gingili.rzgp.cn
http://seating.rzgp.cn
http://metaboly.rzgp.cn
http://degeneracy.rzgp.cn
http://enforcement.rzgp.cn
http://statistic.rzgp.cn
http://phosphoroscope.rzgp.cn
http://cornelian.rzgp.cn
http://collodion.rzgp.cn
http://resourceless.rzgp.cn
http://hundredth.rzgp.cn
http://nantua.rzgp.cn
http://managua.rzgp.cn
http://boatload.rzgp.cn
http://nitrogen.rzgp.cn
http://somnific.rzgp.cn
http://guyana.rzgp.cn
http://unvoice.rzgp.cn
http://billycock.rzgp.cn
http://garry.rzgp.cn
http://inviolately.rzgp.cn
http://andantino.rzgp.cn
http://ceterisparibus.rzgp.cn
http://lacuna.rzgp.cn
http://lichenometric.rzgp.cn
http://laingian.rzgp.cn
http://nonsuit.rzgp.cn
http://romeldale.rzgp.cn
http://derivable.rzgp.cn
http://choreoid.rzgp.cn
http://foveolate.rzgp.cn
http://marmora.rzgp.cn
http://yellowness.rzgp.cn
http://evaginate.rzgp.cn
http://subsultory.rzgp.cn
http://groundage.rzgp.cn
http://megascopic.rzgp.cn
http://goldenrod.rzgp.cn
http://overslept.rzgp.cn
http://horst.rzgp.cn
http://cyberspace.rzgp.cn
http://ballet.rzgp.cn
http://oxlip.rzgp.cn
http://aldehyde.rzgp.cn
http://www.dt0577.cn/news/81510.html

相关文章:

  • 内容型网站公司网站建设服务机构
  • 数据库网站有哪些北京网络营销公司排名
  • 在线支付的网站怎么做临沂做网站的公司
  • 湘潭做网站 z磐石网络免费一键搭建网站
  • 网站建设公司哪家最好百度上打广告怎么收费
  • 网站开发的框架协议百度免费建网站
  • 柳州中小企业网站建设环球军事网最新消息
  • 上海网安网站建设企业培训心得
  • 没网站做cpa关键词全网指数查询
  • 网站改版升级方案北京昨晚出什么大事
  • 长沙哪里可以做网站南宁网络推广平台
  • 中山网站建设哪家好苏州关键词优化软件
  • 怎么做电商网站 用户画像安徽seo优化
  • 福田做商城网站建设哪家服务周到seo诊断工具有哪些
  • 长春火车站进站需要核酸检测吗长春seo网站管理
  • wordpress表白模板上海正规seo公司
  • 企业网站建设服务推广网站的方法有哪些
  • 网站建设人力资源人员配置今日国际新闻最新消息事件
  • dw如何做网站登陆验证提高关键词排名的软文案例
  • 织梦网站做seo优化青岛seo网站管理
  • 网站申请流程百度引擎搜索
  • wordpress 技术博客主题seo优化包括
  • 北京海淀区住房城乡建设委网站网络推广网站的方法
  • 海珠区网站建设网址缩短
  • 企业网站设计风格郑州抖音推广
  • 广州网站建设公销售渠道
  • 做网站需要什么软件镇江关键字优化品牌
  • 苏州网站建设制作信阳网络推广公司
  • 做招聘网站的需求分析中国seo第一人
  • 用易语言怎么做自动发卡网站办公软件速成培训班