哈希表两数求和

news2024/9/25 3:25:51

leetcode题目链接 

这道题思路可以说easy 首先想到的就是两层for循环

代码如下

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        vector<int>result;
        int length=nums.size();
        for(int i=0;i<length;++i){
            for(int j=i+1;j<length;++j){
                if(nums[i]+nums[j]==target){
                    result.push_back(i);
                    result.push_back(j);
                }
              
            }
        }
        return result;

    }
};

但是这样写太漏了,时间复杂度太高,其实可以利用哈希表O(1)的存储复杂度来解决这道题

代码如下:


std::vector<int> twoSum(std::vector<int>& nums, int target) {
    std::unordered_map<int, int> num_map; // 创建哈希表
    for (int i = 0; i < nums.size(); ++i) {
        int complement = target - nums[i];
        // 检查哈希表中是否存在补数
        if (num_map.find(complement) != num_map.end()) {
            return {num_map[complement], i}; // 返回找到的下标
        }
        // 将当前数和下标存入哈希表
        num_map[nums[i]] = i;
    }
    return {}; // 如果没有找到,返回空
}

这里计算目标值与当前值的差值,如果差在哈希表中存在则找到了。

关键是知道nums_map[nums[i]]=i,这种值和键绑定的写法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2084137.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【drools】电影推荐搭建

同步用了很久很久 反复了很多了次,最终: drools用的都是9.*** Y9KP 代码 D:\Future\06_movie-recommendation-system-springboot-drools-rule-engine\recommendation\src\main\resources\com.recommendation.movie.rules\medicine_symptoms.drl在spring boot 中集成drools做电…

16.神经网络 - 卷积层

神经网络 - 卷积层 pytorch官网网站卷积层&#xff08;Convolution Layers&#xff09;&#xff1a;Convolution Layers nn.Conv1d 一维卷积Applies a 1D convolution over an input signal composed of several input planes.nn.Conv2d 二维卷积Applies a 2D convolution ov…

扁线电机介绍

相比于圆线&#xff0c;扁线因为扁平矩形的特殊性能够让线圈缠绕更加紧密&#xff0c;槽满率由原先的40%提升到70%。 这意味着相同体积下线圈中的导线更多&#xff0c;电流的传导效率更高&#xff0c;能够减少电阻损耗&#xff0c;产生的磁场更强&#xff0c;电机功率也就更大&…

【软件工程】软件与软件危机

考点1 软件与软件危机 一、软件 1. 定义 在计算机系统支持下&#xff0c;能够完成特定功能和性能的程序、数据和相关的文档。 2. 软件的分类 二、软件危机 在计算机软件开发和维护过程中所遇到的一系列严重问题。 1. 包含两个方面&#xff1a; 如何开发软件如何维护软件…

Rocm-HIP kernel language

HIP的内核启动语法hipLaunchKernelGGL是一个宏&#xff0c;可以作为启动内核的替代方式&#xff0c;它接受启动配置的参数&#xff08;网格维度、分组维度、流、动态共享大小&#xff09;以及任意数量的内核参数。这个宏可以替代CUDA中的三连字符&#xff08;<<< >…

[记录] linux 虚拟机装 windows10

简介 本机系统&#xff1a;Ubuntu22.04 虚拟机&#xff1a;gnome-boxes 相关资料&#xff1a;度盘 安装流程 安装 gnome-boxes sudo apt install gnome-boxes安装 windows10 打开 Boxes, 选择准备好的 windows10 ISO 文件 可以从官网下载&#xff0c;也可以从我给的资料里获…

OpenCV小练习:身份证号码识别

目标&#xff1a;针对一张身份证照片&#xff0c;把身份证号码识别出来&#xff08;转成数字或字符串&#xff09;。 实现思路&#xff1a;需要将目标拆分成两个子任务&#xff1a;(1) 把身份证号码区域从整张图片中检测/裁剪出来&#xff1b;(2) 将图片中的数字转化成文字。第…

【python】OpenCV—Multi Human Pose Estimation

文章目录 1、背景介绍2、关键点检测模型3、源码与结果4、源码解读——检测关键点5、源码解读——找到有效对6、源码解读——组装个人关键点7、涉及到的库cv2.dnn.blobFromImage 8、参考 1、背景介绍 【python】OpenCV—Single Human Pose Estimation 本文以 COCO 格式为例&am…

低代码门户技术:赋能业务灵活性与创新的新时代

随着数字化转型的深入推进&#xff0c;各行各业对灵活、高效的技术解决方案的需求日益增长。在这个背景下&#xff0c;低代码门户技术应运而生&#xff0c;为企业提供了一种新颖的应用开发方式。今天&#xff0c;我们将探讨低代码门户技术的基本概念、优势以及如何在实际应用中…

uni-app启动本地开发环境,修改默认端口号

vite.config.js: import { defineConfig } from "vite"; import uni from "dcloudio/vite-plugin-uni";// https://vitejs.dev/config/ export default defineConfig({server: {port: 3006,},plugins: [uni()], });人工智能学习网站 https://chat.xutong…

YoloV8实战:使用YoloV8实现OBB框检测

定向边框&#xff08;OBB&#xff09;数据集概述 使用定向边界框&#xff08;OBB&#xff09;训练精确的物体检测模型需要一个全面的数据集。本文解释了与Ultralytics YOLO 模型兼容的各种 OBB 数据集格式&#xff0c;深入介绍了这些格式的结构、应用和格式转换方法。数据集使…

【C++】list的使用和list的模拟实现和迭代器失效问题

一、list 的简单介绍 1. list是可以在常数范围内在任意位置进行插入和删除的序列式容器&#xff0c;并且该容器可以前后双向代。 2. list的底层是双向链表结构&#xff0c;双向链表中每个元素存储在互不相关的独立节点中&#xff0c;在节点中通过指针指向其前一个元素和后一个…

三级_网络技术_52_应用题

一、 请根据下图所示网络结构回答下列问题。 1.填写路由器RG的路由表项。 目的网络/掩码长度输出端口__________S0&#xff08;直接连接&#xff09;__________S1&#xff08;直接连接&#xff09;__________S0__________S1__________S0__________S1 2.如果在不改变路由表项…

npm install报错解决指南:清理缓存与重建依赖

问题描述 在执行npm install命令时&#xff0c;npm install报错&#xff0c;导致依赖无法正常安装。 具体步骤 清理npm缓存&#xff1a; 使用npm cache clean --force命令来强制清理npm缓存&#xff0c;以排除缓存导致的问题。 检查Node.js和npm版本&#xff1a; 执行node -v和…

面试经典算法150题系列-反转字符串中的单词

反转字符串中的单词 给你一个字符串 s &#xff0c;请你反转字符串中 单词 的顺序。 单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。 返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。 注意&#xff1a;输入字符串 s中可能…

HarmonyOS--合理使用动画

一、概述 动画是应用开发中必不可少的部分&#xff0c;它可以使应用程序更加生动和易于互动&#xff0c;一方面可以提升用户体验、增强视觉吸引力&#xff0c;另一方面可以引导用户操作、提高信息传达效率。应用程序中&#xff0c;页面层级间的转场、点击交互、手势操控都可以添…

一刷代码随想录(图论8)

拓扑排序 软件构建 题意&#xff1a; 题目描述&#xff1a; 某个大型软件项目的构建系统拥有 N 个文件&#xff0c;文件编号从 0 到 N - 1&#xff0c;在这些文件中&#xff0c;某些文件依赖于其他文件的内容&#xff0c;这意味着如果文件 A 依赖于文件 B&#xff0c;则必须…

Semantic Kernel/C#:一种通用的Function Calling方法,文末附经测试可用的大模型

Funcion Calling介绍 函数调用允许您将模型如gpt-4o与外部工具和系统连接起来。这对于许多事情都很有用&#xff0c;比如为AI助手赋能&#xff0c;或者在你的应用程序与模型之间建立深度集成。 如果您了解或者使用过Semantic Kernel可能会发现除了OpenAI支持Function Calling…

cenos 7 安装 golang

1、下载地址 All releases - The Go Programming Languagehttps://golang.google.cn/dl/ 2、解压 tar -C /usr/local -zxf go1.14.3.linux-amd64.tar.gz 3、配置PATH 文件 /etc/profile&#xff08;全局&#xff09; 或 $HOME/.profile&#xff08;用户&#xff09; 或 ~/…

<数据集>安全背心识别数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;4185张 标注数量(xml文件个数)&#xff1a;4185 标注数量(txt文件个数)&#xff1a;4185 标注类别数&#xff1a;2 标注类别名称&#xff1a;[vest, no-vest] 序号类别名称图片数框数1vest222439942no-vest221552…