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

(C++哈希表01)

242、有效的字母异位词

用数组模拟哈希表

class Solution {
public:bool isAnagram(string s, string t) {int record[26] = {0};for(int i = 0; i < s.size(); i++) {record[s[i] - 'a']++;}for(int i = 0; i < t.size(); i++) {record[t[i] - 'a']--;}for(int i = 0; i < 26; i++) {if(record[i] != 0) {return false;}}return true;}
};

时间复杂度:O(n + m);

空间复杂度:O(1)

349、两个数组的交集

set占用空间很大,如果题目中的数据有限,优先使用数组。

unordered_set<int> nums_set(nums1.begin(), nums1.end()); 迭代器初始化

find(key)函数,找到key返回begin(),找不到返回end()

class Solution {
public:vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {unordered_set<int> result_set;//迭代器初始化unordered_set<int> nums_set(nums1.begin(), nums1.end());for(int num: nums2) {//找不到num,find()会返回end()if(nums_set.find(num) != nums_set.end()) {result_set.insert(num);}}return vector<int>(result_set.begin(), result_set.end());}
};

时间复杂度:O(n)

空间复杂度:O(n)

202、快乐数

class Solution {
public:bool isHappy(int n) {unordered_set<int> result_set;int count = 0;result_set.insert(n);while(true) {while(n > 0) {int x = n % 10;count += x * x; n /= 10;}if(count == 1) {return true;}if(result_set.find(count) != result_set.end()) {return false;}result_set.insert(count);n = count;count = 0;}}
};

时间复杂度:O(logn)

空间复杂度:O(logn)

1、两数之和

class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {unordered_map<int,int> map;for(int i = 0; i < nums.size(); i++) {auto iter = map.find(target - nums[i]);if(iter != map.end()) {return {iter->second, i};}map.insert(pair<int,int>(nums[i], i));}return {};}
};

时间复杂度:O(n)

空间复杂度:O(n)

相关文章:

  • java springboot监听事件和处理事件
  • C#委托事件的实现
  • RNN文献综述
  • CC2530寄存器编程学习笔记_点灯
  • C编程使用clock函数实现计算一段代码的执行时间:毫秒单位
  • 17.分频器设计拓展练习-任意分频通用模块
  • XML Schema 属性
  • 揭秘:离心风机风量背后的科学原理
  • 没什么事情,随记一下 -出差
  • Labview_压缩文件
  • 关于string的‘\0‘与string,vector构造特点加部分特别知识点的讨论
  • 详细对比Java SPI、Spring SPI 和 Dubbo SPI
  • 【机器学习】特征选择:精炼数据,提升模型效能
  • 暴雨突袭不可不看!水浸传感器作用有这些
  • ubuntu 查看联网配置
  • JS 中的深拷贝与浅拷贝
  • __proto__ 和 prototype的关系
  • Javascripit类型转换比较那点事儿,双等号(==)
  • PHP 小技巧
  • Python中eval与exec的使用及区别
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 服务器之间,相同帐号,实现免密钥登录
  • 技术胖1-4季视频复习— (看视频笔记)
  • 开源地图数据可视化库——mapnik
  • 微信支付JSAPI,实测!终极方案
  • 最简单的无缝轮播
  • 06-01 点餐小程序前台界面搭建
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • # Redis 入门到精通(一)数据类型(4)
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (Matlab)使用竞争神经网络实现数据聚类
  • (STM32笔记)九、RCC时钟树与时钟 第二部分
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (简单) HDU 2612 Find a way,BFS。
  • (四)事件系统
  • (转)fock函数详解
  • (转)linux下的时间函数使用
  • 、写入Shellcode到注册表上线
  • .NET Core 和 .NET Framework 中的 MEF2
  • .NET 药厂业务系统 CPU爆高分析
  • .NET 中让 Task 支持带超时的异步等待
  • .NET/C# 获取一个正在运行的进程的命令行参数
  • .net连接MySQL的方法
  • @Bean, @Component, @Configuration简析
  • @DataRedisTest测试redis从未如此丝滑
  • @font-face 用字体画图标
  • @KafkaListener注解详解(一)| 常用参数详解
  • [ Algorithm ] N次方算法 N Square 动态规划解决
  • [ Socket学习 ] 第一章:网络基础知识
  • []FET-430SIM508 研究日志 11.3.31
  • [C#][DevPress]事件委托的使用
  • [C/C++入门][ifelse]20、闰年判断