您的位置:首页 > 其它

4-2(vector)

2021-04-02 22:12 246 查看

今天主要完成了3道题目以及vector的初步使用

题目一:一列数中,找出只出现一次的数,别的数都出现2次。

思想:利用异或,因为相同为0,相异为1。

题目二:由题一变形:找出一堆数中出现一次的2个数,别的数都出现2次

思想:第一步:将所有数异或,得到的为出现一次的2个数的异或结果val。第二步:根据val找出第一个为1的位i,因为为1代表这2个数该位是不同的。第三步,根据该位i将所有数分为2组,这样就成功这2个数分为了2组,然后将2组分别异或,就得到了这2个数。

题目三:也是题目一的变形:有一堆数,找出只出现一次的数,别的数都出现3次。

思想:定义一个32位的数组,将所有数所有位的1统计起来,如果某个位的1的个数位3n+1,则该位定有出现一次的数,否则不是,根据这点,可以将数还原出来。

vector的使用:

首先vector是一个动态的数组,想当于一个模板,根据类型来决定是什么类型的数组,由start,finish,endofstorage三个指针控制该数组,start指向的是第一个位置,finish指向的是size位置,endofstorage指向的是capacity。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: