1 两数之和

2023-10-29

题目描述:
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。
示例:
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
方法1:直接每次从头到尾比较
主要思路:
(1)依次取出数组中的元素,和其后面的其它元素相加,判断是否等于target;
(2)注意比较时的边界条件

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        if(nums.size()<2)
            return vector<int>();
        vector<int> result(2,0);
        //注意边界条件
        for(int i=0;i<nums.size()-1;++i){
            for(int j=i+1;j<nums.size();++j)
                if(nums[i]+nums[j]==target){
                    result[0]=i;
                    result[1]=j;
                    return result;
                }
        }
        return vector<int>();
    }
};

方法2:借助hash函数
主要思路:
(1)遍历数组中的元素,每次在将该元素加入到数组中前,先判断 tmp=target-nums[ i ]这个数是否存在于 mp,若存在,则表示有两个索引满足要求,不存在,接着将当前索引压入;

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        if(nums.size()<2)
            return vector<int>();
        vector<int> result(2,0);
        unordered_map<int,int> mp;
        int tmp=0;
        for(int i=0;i<nums.size();++i){
            tmp=target-nums[i];//要在mp中查看是否存在的目标数
            if(mp.count(tmp)){
                result[0]=mp[tmp];
                result[1]=i;
                return result;
            }
            mp[nums[i]]=i;//压入新的目标数
        }
        return vector<int>();
    }
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

1 两数之和 的相关文章

  • ORL数据集百度网盘

    最近做人脸识别找了好久才在一个代码的角落里找到ORL的数据集 贫穷使我不愿意花钱下载 上传到百度网盘了 分享给和我一样贫穷的朋友 祝大家早日有钱 链接 https pan baidu com s 178K357kYHhaJnYGyGI76R
  • 1、两数之和

    题目 法1 暴力解法 用两个for循环 缺点 时间复杂度高 法1 推荐 nums list map int input split target int input for i in range len nums 1 for j in ra
  • VBA宏之自动抓取关键文字并填充到指定单元格

    需求如下 最后一列字段名称为 IPTV 判断最后的数据是在哪一行 某两列中筛选含有 IPTV 或 TV 最后一列对应就为 IPTV 否则为空 最后生成的结果另存为指定日期名称的Excel文件 Sub 判断平台是否为IPTV 定义变量 Dim

随机推荐

  • VirtualBox压缩VDI文件 VDI文件瘦身方法

    VirtualBox压缩VDI文件 VDI文件瘦身方法 一 WINDOWS 下压缩 VDI 文件 1 在虚拟机中 右键计算机 gt 管理 gt 磁盘管理 2 右键所有磁盘 压缩卷 把所有磁盘压缩到最小 3 在未分配空间上右键新建卷 4 低级
  • c# Lambda

    分配给委托类型 Func
  • 三种公钥密码体系(传统公开密钥体系 / 基于身份的公开密钥体系 / 基于无证书的公开密钥体系 )

    公开密钥体系 分类 基于证书的公开密钥体系 基于身份的公开密钥体系 基于无证书的公开密钥体系 基于证书的公开密钥体系 第一种方案是采用证书机制实现用户的身份和用户的钥匙之间的安全对应 证书机制一般都采用公钥基础设施 Public Key I
  • 开心档之Bootstrap4 自定义表单

    Bootstrap4 自定义表单 Bootstrap4 可以自定义一些表单的样式来替换浏览器默认的样式 自定义复选框 如果要自定义一个复选框 可以设置 div 为父元素 类为 custom control 和 custom checkbox
  • 如何让FasterTransformer支持动态batch和动态sequence length

    FasterTransformer 算子 nvidia在开源的FasterTransformer的代码中 提供tensorrt和tensorflow的自定义算子编译和py调用示例 详见FasterTransformer py 但是如果使用t
  • openwrt编译环境搭建

    openwrt编译环境搭建 1 虚拟机安装 请参考网络上的资料进行安装 2 ubuntu安装 请参考网络上的资料进行安装 3 ubuntu下安装相关的编译环境 若是编译环境没有准备好 在后来的操作中会出现一些问题 sudoapt get i
  • 什么是4K HDR?HDR10+、HDR10 PRO、杜比视界HDR区别

    转自 https www sohu com a 255875615 200013 这一篇继续围绕4K给大家讲一下4K中的4K HDR HDR10 HDR10 都是什么意思 关于更多4K HDR相关资料和视频电影请到 Hao4K https
  • Angular进阶技术之模块化及懒加载

    Angular组件模块化以及路由懒加载 前提摘要 模块化的场景 NgModule 引发的思考 如何去定义模块和模块化的作用 Angular模块化以及路由懒加载 延伸 子组件模块 二级路由懒加载模块 模块化引申 一些命令和tips 本地发布测
  • 第六章 修改表

    文章目录 第六章 修改表 1 修改表的数据类型 2 添加列 3 修改列的位置 4 修改列名和数据类型 5 删除列 6 设置主键 7 设置唯一键 8 使列具有自动连续编号功能 9 设置默认值 10 关于索引的操作 第六章 修改表 1 修改表的
  • cad中tk什么意思_cad图纸中各种字母是什么意思

    展开全部 ACE 在能进入的bai吊顶在敷du设 BC 暗敷 梁zhi内 CLC 暗敷设在dao柱子内 we 暗敷设在墙回内 WE 沿墙明敷答设 FC 预埋在地面内 BE 沿屋架或跨屋架敷设 CLE 沿柱或跨柱敷设 WE 沿墙面敷设 CE
  • PCL 欧式聚类分割

    目录 一 算法原理 1 实现流程 2 实现方法 3 核心代码 4 参考文献 二 代码实现 三 结果展示 四 应用案例 五 保存结果 六 不调库实现 一 算法原理 1 实现流程 欧式聚类是一种基于欧氏距离度量的聚类算法 基于KD Tree的近
  • Docker 入门到实战教程(一)介绍Docker

    一 Docker简介 1 1 什么是虚拟化 在计算机中 虚拟化 英语 Virtualization 是一种资源管理技术 是将计算机的各种实体资源 如服务器 网络 内存及存储等 予以抽象 转换后呈现出来 打破实体结构间的不可切割的障碍 使用户
  • hadoop web查看集群datanode 信息不全

    环境说明 同一主机上 两台ubuntu虚拟机 问题 启动Hadoop后 两个节点上的jps查看进程正常 可web登录50070端口 查看的datanode information 只显示的本机上的datanode信息 namenode上jp
  • Serializable序列化实例

    需要序列化的对象 package com zizhu import java io Serializable public class SerializableHello implements Serializable private st
  • 工具类——Java导出EXCEL2(设置样式、加载并填充图片、加载指定模板、大数据量设置窗口大小与刷新频率)

    文章目录 一 POI设置样式 二 POI导出图片 1 解释XSSFClientAnchor 三 加载指定模板导出 四 Workbook XSSFWorkbook与SXSSFWorkbook 1 大数据量导出 1 根据数据量选择XSSFWor
  • ora-12801错误

    今天开发人员遇到如下错误 SQL gt SELECT from 2 FT SB FCS C 3 FT DJ FCDJ D 4 WHERE C YXBZ Y 5 AND C CQZH D FCDJXH 6 AND D ZYBZ Y 7 AND
  • Stress-ng

    介绍如何在 Linux 系统上使用 stress ng 负载测试工具 产生 CPU 内存等资源满载的状况 stress ng stress ng 与旧的 stress 都可以用来产生系统负载 但新的 stress ng 功能较丰富 所以这里
  • C++入门(2/2)

    目录 一 内联函数 二 auto关键字 C 11 三 范围for 四 nullptr 一 内联函数 C 用inline修饰的函数 会在编译时在调用内联函数的地方展开 没有了函数调用建立栈帧的开销 内联函数提升程序运行的效率 对于一个短小的函
  • ubuntu解决连不上网问题(无网关篇)

    今天用ubuntu时发现系统连不上网了 可能是之前捣鼓虚拟机作为ftp服务器导致的 windows下ipconfig命令查看到虚拟机的默认网关是空的 知道了是ubuntu默认网关没配好的原因 参考了这篇博客 如下 1条消息 虚拟机ping不
  • 1 两数之和

    题目描述 给定一个整数数组 nums 和一个目标值 target 请你在该数组中找出和为目标值的那 两个 整数 并返回他们的数组下标 你可以假设每种输入只会对应一个答案 但是 数组中同一个元素不能使用两遍 示例 给定 nums 2 7 11