【hot 100】哈希 Day21.LC49.字母异位词分组2. LC128. 最长连续序列1.LC49.字母异位词分组https://leetcode.cn/problems/group-anagrams/description/?envTypestudy-plan-v2envIdtop-100-liked#includevector#includestring#includeunordered_map#includealgorithm#includeiostreamusingnamespacestd;classSolution{public:vectorvectorstringgroupAnagrams(vectorstringstrs){// 哈希表key为排序后的字符串value保存同一组异位词unordered_mapstring,vectorstringmp;// 遍历所有字符串for(string s:strs){string keys;sort(key.begin(),key.end());// 异位词排序后一致mp[key].push_back(s);}// 把分组存入结果数组vectorvectorstringres;for(autop:mp){res.push_back(p.second);}returnres;}};// 主函数 测试用例intmain(){Solution sol;// 测试用例1vectorstringstrs1{eat,tea,tan,ate,nat,bat};vectorvectorstringans1sol.groupAnagrams(strs1);// 打印输出for(autogroup:ans1){cout[;for(inti0;igroup.size();i){if(i0)cout,;coutgroup[i];}cout] ;}return0;}2. LC128. 最长连续序列https://leetcode.cn/problems/longest-consecutive-sequence/description/?envTypestudy-plan-v2envIdtop-100-liked#includeiostream#includevector#includeunordered_set// 哈希集合usingnamespacestd;intlongestConsecutive(vectorintnums){// 1. 把所有数字放入集合自动去重unordered_setintnum_set;for(intnum:nums){num_set.insert(num);}intmax_len0;// 记录最长序列长度// 2. 遍历每一个数字for(intx:num_set){// 如果 x-1 不在集合里x就是连续序列的起点if(num_set.find(x-1)num_set.end()){intcurrent_numx;intcurrent_len1;// 不断往后找 current_num 1while(num_set.find(current_num1)!num_set.end()){current_num;current_len;}// 更新最大值if(current_lenmax_len){max_lencurrent_len;}}}returnmax_len;}intmain(){// 测试样例1vectorintnums{100,4,200,1,3,2};coutlongestConsecutive(nums)endl;// 输出4return0;}
【hot 100】哈希 Day2
【hot 100】哈希 Day21.LC49.字母异位词分组2. LC128. 最长连续序列1.LC49.字母异位词分组https://leetcode.cn/problems/group-anagrams/description/?envTypestudy-plan-v2envIdtop-100-liked#includevector#includestring#includeunordered_map#includealgorithm#includeiostreamusingnamespacestd;classSolution{public:vectorvectorstringgroupAnagrams(vectorstringstrs){// 哈希表key为排序后的字符串value保存同一组异位词unordered_mapstring,vectorstringmp;// 遍历所有字符串for(string s:strs){string keys;sort(key.begin(),key.end());// 异位词排序后一致mp[key].push_back(s);}// 把分组存入结果数组vectorvectorstringres;for(autop:mp){res.push_back(p.second);}returnres;}};// 主函数 测试用例intmain(){Solution sol;// 测试用例1vectorstringstrs1{eat,tea,tan,ate,nat,bat};vectorvectorstringans1sol.groupAnagrams(strs1);// 打印输出for(autogroup:ans1){cout[;for(inti0;igroup.size();i){if(i0)cout,;coutgroup[i];}cout] ;}return0;}2. LC128. 最长连续序列https://leetcode.cn/problems/longest-consecutive-sequence/description/?envTypestudy-plan-v2envIdtop-100-liked#includeiostream#includevector#includeunordered_set// 哈希集合usingnamespacestd;intlongestConsecutive(vectorintnums){// 1. 把所有数字放入集合自动去重unordered_setintnum_set;for(intnum:nums){num_set.insert(num);}intmax_len0;// 记录最长序列长度// 2. 遍历每一个数字for(intx:num_set){// 如果 x-1 不在集合里x就是连续序列的起点if(num_set.find(x-1)num_set.end()){intcurrent_numx;intcurrent_len1;// 不断往后找 current_num 1while(num_set.find(current_num1)!num_set.end()){current_num;current_len;}// 更新最大值if(current_lenmax_len){max_lencurrent_len;}}}returnmax_len;}intmain(){// 测试样例1vectorintnums{100,4,200,1,3,2};coutlongestConsecutive(nums)endl;// 输出4return0;}