n个整数,其中有两个数是重复的,要求找出这两个重复的整数
- 方法一
- 方法二
- 方法三
- 空间复杂度的计算
- 常量空间
- 线性空间
- 二维空间
- 递归空间
方法一
使用set集合
- 将每一个元素放到set集合中,加入的时候判断集合中是否存在此元素,如果if判断找到了这个元素,返回为true
方法二
- 使用map,形成一个字典;key是对应的元素,value对应出现的次数。
- 字典本身的时间复杂度是O(1),整个算法的时间复杂度是O(n)
- 所谓的字典 也叫散列表,需要开辟一段内存来存储有用的数据信息
- 空间复杂度:是指一个算法在运行过程中临时占用的存储空间的大小的量度,同样使用大写的O表示
方法三
- 二重循环 low 省略
空间复杂度的计算
常量空间
- 算法的存储空间大小固定,和输入规模没有直接的关系 O(1)
线性空间
- 数组,申请的空间大小和输入的规模成正比 O(n)
二维空间
- 集合输入的规模的长度和宽度 都与输入的规模n呈正比,O(n^2)
递归空间
- 递归调用 数据栈里面存储的数据激增,只有遇到终止条件,进行数据的出栈,返回最后的结果
- 递归操作所需要的内存空间和递归的深度呈正比。纯粹的递归操作的空间复杂度是线性的,如果递归的深度是n,那么空间复杂度是O(n)