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

STL之unordered_map

关联容器:unordered_map详细介绍

看这个,基本就够用了。

粘一个力扣编程题:给定一个数组nums和一个整数目标值target,请在数组中找到和为目标值的两个整数,返回它们的数组下标。你可以假设每种输入只会对应一个答案,但是数组中同一个元素不能使用两边。

看到这个我想到暴力破解的办法,但是暴力破解时间复杂度比较高,原因在于在寻找target-x的时间复杂度高,所以使用哈希表来快速寻找数组中的目标元素,我们先创建一个哈希表,对于每一个x,查找哈希表中是否存在target-x,然后将x插入到哈希表,确保不会和自己匹配到。

#include <iostream>
#include <unordered_map>
#include <vector>
using namespace std;

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        unordered_map<int, int> hashtable;
        for (int i = 0; i < nums.size(); ++i) {
            auto it = hashtable.find(target - nums[i]);
            if (it != hashtable.end()) {
                return { it->second, i }; // 返回元素target-x 的下标与 x 的下标
            }
            hashtable[nums[i]] = i; // 没有找到target-x,就把x放进表,及它的下标
        }
        return {};
    }
};

int main()
{
    vector<int> nums = { 2,7,11,15 },sul;
    Solution obj;
    sul = obj.twoSum(nums, 9);
    for (int val : sul)
        cout << val << " ";
    cout << endl;
}

 

相关文章:

  • 动态规划
  • 算法分析
  • 编写一个函数,实现将char类型的字符串,循环右移n个位置
  • 类构造、析构、赋值函数示例
  • 数组指针指针数组
  • LeeCode 20.有效的括号
  • LeeCode 26 删除排序数组中的重复项,返回数组新长度
  • LeeCode 27 移除元素,返回数组新长度
  • LeeCode 2125 合并两个(K个)有序链表
  • (10)STL算法之搜索(二) 二分查找
  • 单例模式(懒汉模式、饿汉模式)
  • 工厂模式抽象工厂
  • 链表翻转
  • LRU缓存算法
  • 判断单链表中是否存在环
  • [iOS]Core Data浅析一 -- 启用Core Data
  • [译]Python中的类属性与实例属性的区别
  • ComponentOne 2017 V2版本正式发布
  • fetch 从初识到应用
  • Flannel解读
  • HTTP请求重发
  • java多线程
  • JS字符串转数字方法总结
  • k8s 面向应用开发者的基础命令
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • Nacos系列:Nacos的Java SDK使用
  • Work@Alibaba 阿里巴巴的企业应用构建之路
  • XML已死 ?
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • 前嗅ForeSpider教程:创建模板
  • 如何学习JavaEE,项目又该如何做?
  • 收藏好这篇,别再只说“数据劫持”了
  • 小试R空间处理新库sf
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • # Java NIO(一)FileChannel
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (南京观海微电子)——COF介绍
  • (十六)一篇文章学会Java的常用API
  • (一)基于IDEA的JAVA基础12
  • (轉貼) UML中文FAQ (OO) (UML)
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .net 4.0 A potentially dangerous Request.Form value was detected from the client 的解决方案
  • .Net 4.0并行库实用性演练
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径
  • .NET(C#、VB)APP开发——Smobiler平台控件介绍:Bluetooth组件
  • .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态
  • .net反编译工具
  • @Valid和@NotNull字段校验使用
  • [④ADRV902x]: Digital Filter Configuration(发射端)
  • [android] 手机卫士黑名单功能(ListView优化)
  • [BPU部署教程] 教你搞定YOLOV5部署 (版本: 6.2)
  • [BSGS算法]纯水斐波那契数列