zoukankan      html  css  js  c++  java
  • 算法 位运算 整理


    数学蛮有趣的。

    QA 1.判断一个数字是否为2的n次方

    if N & (N-1) = 0 那么 这个数就是2的n次方。

    QA 2.一个list里有99个不重复的数,(范围1到100),找出那个在100中不存在的数值。

    answer 1:5050-list中所有数字的和。

    answer 2: 异或运算

    1到100进行异或运算,然后再与list中的所有数字依次进行异或运算。最后的值就是缺失的、不存在的数字。

    QA 3.一个数组包含 n+1 个成员,这些成员是 1 到 n 之间的整数。只有一个成员出现了两次,其他成员都只出现一次,请找出重复出现的那个数字。

    answer 1:list中n+1个成员求和,减去,1到n之间的整数的和。差值就是重复的数字。

    answer 2:利用异或运算,这n+1个成员,与1到n的整数,所有数字,进行异或运算,最后的结果就是那个重复的数字。

    QA 4:一个数组包含2N+1个成员,N组成员都是两两一样,只有1个成员与其他数字不重复,找出,不重复的那个数字。

    例:1 1 3 2 2 4 4

    answer 是 3

    算法: 所有成员变量异或运算,最后的结果就是那个不重复的数字。

    上面这几个question,都是在思考异或运算。

    异或运算本质,就是

    0 ^ 0 = 0
    0 ^ 1 = 1
    1 ^ 0 = 1
    1 ^ 1 = 0

    两个数字相同,异或运算,结果为0;
    0与x,进行异或运算,结果为x。

    参考链接:

    http://www.ruanyifeng.com/blog/2021/01/_xor.html

    努力到无能为力,奋斗到感动上天!
  • 相关阅读:
    MFC程序自动生成dump Windbg文件
    .net 播放音频(使用winmm.dll)
    media player 网页代码属性
    标记ATL控件为安全控件
    js方法重写
    cab包inf文件配置
    凌阳单片机(61板)USB下载线原理与制作
    html 智能检查,修复
    差异性发展 浙江工商局长郑宇民“智斗”央视女主持董倩
    什么是有效高效的沟通
  • 原文地址:https://www.cnblogs.com/lihao007/p/14347133.html
Copyright © 2011-2022 走看看