记录刷题的日子2(2023.3.2)

文章介绍了C++中vector的不同初始化方法,包括空数组、指定大小和值、拷贝构造函数。此外,讨论了剑指Offer中的数组中重复数字问题,涉及到了map和unordered_map容器,以及暴力求解和原地交换的解题思路。
摘要由CSDN通过智能技术生成

一些感想

今天做力扣的剑指offer专项,从简单的题目开始做。

关于vector数组

以下是vector数组初始化的方法(以int类型数组为例):
  • 方法一
  vector<int> v(元素数量);
  //这样就创建了一个元素数量为“元素数量”的数组,其中每个元素的值都为0;
  //这个“元素数量”的值可以是常量也可以是变量
  • 方法二
  vector<int> v(num,value);
  //创建了一个元素数量为“num”的数组,并且每个元素的值都为“value”;
  • 方法三
   vector<int> v;
   //创建了一个空的数组,此方法可通过v.push_back(value)不断向末尾增加元素
  • 方法四
 vector<int> v1(v2); // 通过拷贝构造函数初始化

以下是计算vector数组有多少元素的方法:

  • 方法一
 int length=v.size();

注:vector可以随机存储元素,直接访问v[index]即可

剑指 Offer 03. 数组中重复的数字

前言

这个题目很简单,但是解答区用到了我没见过的容器,unordered_map容器。

知识点

首先查询一下什么是map

map是c++标准库中定义的关联容器,用来存储一对一的数据。
使用它要加头文件
第一个数据:关键字(key),每个关键字只能在map中出现一次;
第二个数据:该关键字的值(value);
map特性:map会按照键的顺序从小到大自动排序

有关map的特性,推荐“行码棋”的这篇博文,里面详细介绍了map的函数方法。
C++STL之map详解

接下来就看什么是unordered_map容器,那么就一句话总结吧。

  • 可以将 unordered_map 容器等价为无序的 map 容器。
思路

我的思路是暴力求解,此处不再赘述;
解答区中的思路一用哈希表记录数字,鉴于时间复杂度和孔家复杂度和暴力求解一样,我也看作是暴力求解的一种;
最好的一种方法应该是原地交换,但我实在没有看懂。
不过这道题也学到了map这个知识点,那么原地交换就暂时不看了~

再见

今天就先做到这里啦,一共做了两道题,还有一道不算难,而且没有需要注意的知识点,就没再记录。感觉自己做得太慢了,做的内容也太少了,总之继续努力!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值