1679. K和数对的最大数目
分析
- 使用哈希表记录出现次数:
- 用一个哈希表
hash
来记录数组中每个整数出现的次数
- 用一个哈希表
- 查找是否能形成和为
k
的配对:- 遍历数组中的每个元素
num
,计算目标值target = k - num
- 如果哈希表中存在目标值
target
且次数大于0
,则找到一对符合条件的整数,计数器res
增加1
,并减少target
的计数 - 如果目标值
target
不存在,将当前元素num
的计数加到哈希表中
- 遍历数组中的每个元素
- 返回最大操作数:
- 遍历完成后,结果存储在
res
中,表示可以执行的最大操作数
- 遍历完成后,结果存储在
时间复杂度
- 遍历数组,时间复杂度为
O(n)
- 每次哈希表的插入与查询时间复杂度为
O(1)
,总体复杂度为O(n)
空间复杂度
空间复杂度为 O(n)
C++代码
|
|