首页 > 其他分享 >位运算 之 小 trick

位运算 之 小 trick

时间:2024-09-30 21:01:56浏览次数:1  
标签:10 运算 个数 数都 trick 异或 出现 数字

异或


 

只出现一次的数字(其他两次)


 

136. 只出现一次的数字

一串数中,每个数都出现2次,只有一个数出现1次,求出这个数。

考察异或的性质,根据 a^a=0,a^0=a

那么就对每个数异或一下即可。然后根据交换律,每个数都异或了之后,相同的都归0了,剩下一个就自动求出来了。

大概是这样(找不到C++版,凑合看):

 

只出现一次的数字II (其他三次)


 

137. 只出现一次的数字 II

方法一,依次确定每一个二进制位


 

一串数中,每个数都出现3次,只有一个数出现1次,求出这个数。

考虑拆位做,讨论一下这些数的每一位。

例如[2,2,1,2],拆成二进制,[10,01,10,10]

明显有一个特点,我们所求的结果,对于每一位,如果这一位是1,那么1出现的个数肯定不为3的倍数。

在这题中,结果是1,二进制是01,第0位1的个数只有1次。(反证法:如果出现的个数是3的倍数,那么肯定不是我们要求的数)

 我们再想想,用这个方法套进第一题可行吗?答案是肯定的,不过要把%3换成%2(count%3那里)

 

标签:10,运算,个数,数都,trick,异或,出现,数字
From: https://www.cnblogs.com/didiao233/p/18442433

相关文章

  • 随机三十道四则运算
    importjavax.swing.;importjava.awt.;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.util.Random;publicclassArithmeticTestGUIextendsJFrame{privatestaticfinalintTIME_LIMIT_SECONDS=360;privatestaticfina......
  • 四则运算2
    importjava.util.*;importjava.util.concurrent.Executors;importjava.util.concurrent.ScheduledExecutorService;importjava.util.concurrent.TimeUnit;publicclassArithmeticQuiz{privatestaticfinalintNUMBER_OF_QUESTIONS=10;privatestaticfinalin......
  • 8.2.1 数组运算
    1.数组的集成初始化搜索是现代计算机或者说互联网上频繁在发生的事情.现在我们来看一个最最最基本最简单的搜索要怎么去做.在给定的一组数据中,如何找出某个数据是否存在?我们来看一段现成的代码:我们在开头定义了一个数组,像这样定义一个数组我们把它叫做集成初始化.我们定......
  • Js运算符(操作符)
    算数运算符a=1+1//2a=10-5//5a=10/5//2a=10/0//js中除以0不会报错,结果是Infinitya=2*2//4a=2**2//a=10%4//取余,2js中算数运算,除了字符串的加法,会自动将非数值转换为int进行计算,不像其他语言会报错a=10+true//11a=10......
  • PTA 实验三 零基础JAVA语言学习 7-1 复数类的定义 要想编写一个复数类,可以进行复数加
      要想编写一个复数类,可以进行复数加法和减法运算。编写一个包含main方法的类测试该复数类。要求该复数类至少包含一个无参的构造方法和一个带参的构造方法;数据成员包括复数的实部和虚部,为double类型;包括两个方法,分别实现复数的加法和减法运算。测试代码如下:publicsta......
  • 关于离散化+Trick
    离散化干嘛用的不多说。你不会去问度娘吗板板经常忘又懒得找。遂写一模板暂存。//a为原数组,b为a的副本voidversion1(){ sort(b+1,b+1+n); intsiz=unique(b+1,b+1+n)-b-1; for(inti=1,k;i<=n;i++) a[i]=lower_bound(b+1,b+1+siz,a[i])-b-1;}unordered_map<int,i......
  • 结对项目——实现一个自动生成小学四则运算题目的命令行程序
    这个作业属于哪个课程https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/这个作业要求在哪里结对项目-作业-计科22级34班-班级博客-博客园(cnblogs.com)这个作业的目标结对项目——实现一个自动生成小学四则运算题目的命令行程序成员1陈奕奕32220045......
  • 结对项目:自动生成小学四则运算题目的命令行程序
    这个作业属于哪个课程计科22级12班这个作业要求在哪里https://edu.cnblogs.com/campus/gdgy/CSGrade22-12/homework/13221姓名学号曾繁曦3122004841吴健民3122004667PSP表格一、流程图二、模块设计1.模块划分Main模块(Main.java)功能描述:程序的入......
  • Java数据类型与运算符
    前言Java是一种广泛使用的编程语言,它以其“一次编写,到处运行”(WriteOnce,RunAnywhere,简称WORA)的理念而闻名。Java的学习将伴随着该文章展开!!一.数据类型Java的数据类型大体与C语音相类似,又有些许不同,且听我道来。基本数据类型分为整型,字符型,浮点型以及布尔类型! 1.1......
  • 友元运算符重载函数
    目录1.定义友元运算符重载函数的语法形式2.双目运算符重载3.单目运算符重载1.定义友元运算符重载函数的语法形式        (1)在类的内部,定义友元运算符重载函数的格式如下:friend函数类型operator运算符(形参表){函数体}        (2)在类中,声明友......