这里简单学习一下STL关联容器,主要是map、multimap、set、multiset以及unordered_map。前四个底层实现都是利用红黑树实现的,查找算法时间复杂度为$O(log(n))$,而unordered_map从名字上就知道是无序容器,其实现原理类似哈希表,查找算法时间复杂度$O( ...
分类:
其他好文 时间:
2020-06-06 11:23:47
阅读次数:
69
1 //哈希表查询与插入删除速率非常快速 2 #include<unordered_map> 3 #include<map> 4 #include<iostream> 5 6 using namespace std; 7 template<typename Key,typename Value> 8 ...
分类:
其他好文 时间:
2020-05-14 13:00:15
阅读次数:
64
# ``` class Solution { public: int lengthOfLongestSubstring(string s) { unordered_map hash; int res = 0; for(int i = 0, j = 0; j 1) { while(i < j) { h... ...
分类:
其他好文 时间:
2020-05-03 20:08:28
阅读次数:
43
题目: 解答: 递归+记忆。 class Solution { public: unordered_map<int,string> map; string countAndSay(int n) { string res; if(map.count(n)) { return map[n]; } els ...
分类:
其他好文 时间:
2020-05-03 18:42:54
阅读次数:
60
题目 在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。 示例 1: 示例 2: 限制: 1 & nums) { int res = 0; unordered_map ump; for (auto n : nums) { if (ump.count( ...
分类:
编程语言 时间:
2020-05-02 00:18:38
阅读次数:
64
如何选择? 如果你想要一个具有排序后的数据的话,通常可以选择map这种类型。或者想要打印具有一定顺序的元素。 如果你只想记录数据而不是想要将数据进行排序的话,那么就可以选择unordered_map这种数据结构。 排序 map: 在默认情况下,按照键递增的排序顺序 unordered_map :不排 ...
分类:
其他好文 时间:
2020-05-01 22:16:17
阅读次数:
92
1 class Solution 2 { 3 public: 4 int numSubarraysWithSum(vector<int>& nums, int k) 5 { 6 unordered_map<int,int> hash;// 和+次数 7 hash[0] = 1; 8 9 int re ...
分类:
编程语言 时间:
2020-04-29 21:47:39
阅读次数:
61
static bool cmp(pair<char, int> a , pair<char,int> b) { return a.second>b.second; //按照value从大到小重新排序 } string frequencySort(string s) { unordered_map<c ...
分类:
编程语言 时间:
2020-04-27 22:52:06
阅读次数:
131
1 class Twitter 2 { 3 public: 4 unordered_map<int,priority_queue<pair<int,int>,vector<pair<int,int>>,greater<pair<int,int>>>> u;//用户 -> (出现的次数,推文) 小根堆 ...
分类:
其他好文 时间:
2020-04-22 23:00:19
阅读次数:
114
1 class Solution 2 { 3 public: 4 vector<int> topKFrequent(vector<int>& nums, int k) 5 { 6 vector<int> res; 7 unordered_map<int,int> hash; 8 for(auto a ...
分类:
其他好文 时间:
2020-04-22 19:38:30
阅读次数:
43