今天主要完成了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。

©著作权归作者所有:来自51CTO博客作者我要进大厂的原创作品,如需转载,请注明出处,否则将追究法律责任

好知识,才能预见未来

赞赏

0人进行了赞赏支持

更多相关文章

  1. 实例ES6演示数组,对象,传参解构; 实例演示访问器属性的get,set操作
  2. js的解构
  3. Spark分区器HashPartitioner和RangePartitioner代码详解
  4. 如何开始一个数据科学项目?
  5. 如何在 Apache Hive 中解析 Json 数组
  6. Go语言学习5-切片类型
  7. Go语言学习4-数组类型
  8. 百度核心搜索面试
  9. 易错:函数方式实现二分查找整形数组

随机推荐

  1. android开关控件使用(一)
  2. Android Context详解
  3. Android UI 中 gravity 与 layout_gravit
  4. Android之ContentProvider源码解析
  5. EditText焦点问题
  6. android 图片画画板
  7. Android Wi-Fi EAP-SIM代码解析
  8. Android如何设置EditText不自动弹出软键
  9. Android自定义样式style.xml
  10. (二) Android NDK 官方下载地址