今天主要完成了3道题目以及vector的初步使用数组
题目一:一列数中,找出只出现一次的数,别的数都出现2次。ide
思想:利用异或,由于相同为0,相异为1。指针
题目二:由题一变形:找出一堆数中出现一次的2个数,别的数都出现2次ci
思想:第一步:将全部数异或,获得的为出现一次的2个数的异或结果val。第二步:根据val找出第一个为1的位i,由于为1表明这2个数该位是不一样的。第三步,根据该位i将全部数分为2组,这样就成功这2个数分为了2组,而后将2组分别异或,就获得了这2个数。it
题目三:也是题目一的变形:有一堆数,找出只出现一次的数,别的数都出现3次。模板
思想:定义一个32位的数组,将全部数全部位的1统计起来,若是某个位的1的个数位3n+1,则该位定有出现一次的数,不然不是,根据这点,能够将数还原出来。class
vector的使用:统计
首先vector是一个动态的数组,想当于一个模板,根据类型来决定是什么类型的数组,由start,finish,endofstorage三个指针控制该数组,start指向的是第一个位置,finish指向的是size位置,endofstorage指向的是capacity。
di