赞
踩
题量越来越大,题目也越来越难了呜呜呜,再加上我对unordered_set
和unordered_map
这两个数据结构的使用不熟练,需要抽出时间来学习
#include <unordered_set
unordered_set<int> s; //定义 s.insert(x); //插入,当集合中有该元素,则无效 s.erase(x); //删除 s.size(); //长度 s.find(x); //==s.end()时,不存在,通过值查找元素,返回迭代器, //若没找到,则返回最后一个元素之后的迭代器s.end(), s.count(x); //查找元素是否存在,==0时,不存在 s.empyt(x); //是否为空 s.clear(); //清空 //迭代器,*it输出元素的值,unordered_set无序,因此输出时元素也无序 for(auto it = s.begin(); it != s.end(); it++){ cout<< *it <<" "; } for(auto it : s) cout<<it<<" "; //通过数组构造集合 int a[6] = {1,2,3,4,5,6}; unordered_set<int> s(a,a+6); //s(a.begin(),a.end());
unordered_map
每个key只出现一次,key有对应的value
unordered_map<int,int> hash; //要分别定义key和value的两个数据类型
hash.emplace(key,value); //插值,当key值存在时无效
auto it = hash.find(x); //找到key==x时的位置,返回迭代器
int value = it->second; //通过迭代器访问value
(long long)n1+n2;
nums[i]>target 剪枝
,而是target > 0 && nums[i] > target
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。