当前位置: 首页 > news >正文

LeetCode热题100——哈希表

哈希表

  • 1.两数之和
  • 2.字母异位词分组
  • 3.最长连续序列

1.两数之和

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。可以按任意顺序返回答案。

// 题解思路:使用哈希表查找遍历目标(无序)
vector<int> twoSum(vector<int>& nums, int target) {if (nums.empty()) {return {};}std::unordered_map<int, int> map;for (int i = 0; i < nums.size(); ++i) {if (map.count(target - nums[i])) {return {i, map[target - nums[i]]};} else {map[nums[i]] = i;}}return {};
}

2.字母异位词分组

给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。字母异位词 是由重新排列源单词的所有字母得到的一个新单词。

// 题解思路:排序后分组
vector<vector<string>> groupAnagrams(vector<string>& strs) {std::unordered_map<string, vector<string>> map;for (const auto& str : strs) {string key = str;sort(key.begin(), key.end());map[key].emplace_back(str);}vector<vector<string>> result;for (auto iter = map.begin(); iter != map.end(); ++iter) {result.emplace_back(iter->second);}return result;
}

3.最长连续序列

给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。

// 题解思路:排序去重,相邻计算统计最大长度
int longestConsecutive(vector<int>& nums) {if (nums.empty()) {return 0;}sort(nums.begin(), nums.end());auto iter = std::unique(nums.begin(), nums.end());nums.erase(iter, nums.end());int update_count = 1;int max_length = 1;for (int i = 0; i < nums.size() - 1; ++i) {if (nums[i+1] - nums[i] == 1) {max_length = std::max(max_length, ++update_count);} else {update_count = 1;max_length = std::max(max_length, update_count);}}return max_length;
}
http://www.lryc.cn/news/212788.html

相关文章:

  • Kubeadm
  • 【Overload游戏引擎细节分析】PBR材质Shader---完结篇
  • C++设计模式_18_State 状态模式
  • 详解final, abstract, interface关键字
  • 统计特殊四元组
  • 腾讯云轻量应用服务器“镜像”怎么选择合适?
  • Ruby模块和程序组织
  • 14、SpringCloud -- WebSocket 实时通知用户
  • 智能井盖传感器推荐,万宾科技助力城市信息化建设
  • 3D模型格式转换工具HOOPS Exchange对工业级3D产品HOOPS的支持与应用
  • table 表体滚动, 表头、表尾固定
  • 第57篇-某钩招聘网站加密参数分析【2023-10-31】
  • C语言数据结构之数据结构入门
  • 如何知道服务器的某个端口是否打开
  • 【ICCV‘23】One-shot Implicit Animatable Avatars with Model-based Priors
  • 关于息肉检测和识别项目的总结
  • Jetson Xavier NX FFmpeg支持硬件编解码
  • 518抽奖软件,为什么说比别的抽奖软件更美观精美?
  • React的组件学习
  • uni-app配置微信开发者工具
  • 肺癌不再是老年病:33岁作家的离世引发关注,有这些情况的请注意
  • 【兔子王赠书第4期】用ChatGPT轻松玩转机器学习与深度学习
  • Ubuntu18.04 ROS Melodic的cv_bridge指向问题(四种方式,包括opencv4)(转载)
  • Android任务栈和启动模式
  • 电脑加密软件哪个好?电脑加密软件推荐
  • 如何优雅地单元测试 Kotlin/Java 中的 private 方法?
  • 单元测试,集成测试,系统测试的区别是什么?
  • 数据结构(超详细讲解!!)第十八节 串(KMP算法)
  • 软考_软件设计师
  • 大数据之LibrA数据库系统告警处理(ALM-12004 OLdap资源异常)