zoukankan      html  css  js  c++  java
  • 出现一次的数字

    看了何海涛的日志 他分别解决了一个 两个 三个 出现一次的数字的思路 给人的感觉有一生二 二生三 三生万物的思维

    现把自己的感悟写下来

    一个 思路很简单 所有数字异或的结果

    两个 关键是区别 所有的数字异或的结果同时也是两个出现一次数字异或的结果 记为XORresult<>0 区别这两个数字就用XORresult中为1的某一位

    三个 关键还是区别 所有的数字异或的结果同时也是三个出现一次数字异或的结果 记为XORresult

        这个地方是关键哦

          经过一系列的反证法 作者得出来了一些列结论

            具体过程:

            1. 对于任何三个不为0的数字 i, j, k, f(i)^f(j)^f(k) 结果不可能为0 如下图

              

              

             因此 f[ f( XORresult^a ) ^ f( XORresult^b ) ^ f( XORresult^c ) ... ] 结果不可能为0;

            2. XORresult^a XORresult^b XORresult^c 第m位不可能都是1 这个很容易理解吧!

  • 相关阅读:
    EasyUI 常用图标
    DataGridView滚动条联动
    FTP下载工具
    C# 解析带命名空间的xml
    1.基于3.x版本vue脚手架创建新项目
    js处理异步的几种方式
    JS字符串常用方法
    git(开源的分布式版本控制系统)
    js检查数据类型的方法
    数组的常用方法
  • 原文地址:https://www.cnblogs.com/Knuth/p/3097286.html
Copyright © 2011-2022 走看看