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

【哈希】1. leetcode 1. 两数之和

1 题目描述

题目链接:两数之和
在这里插入图片描述

2 题目解析

一般的思维:找到两个数A和B,判断A和B相加是否为target。
我们可以采用逆向思维:找到一个数A,在nums数组中找是否有值等于target - A,因为题目要求只返回一个组合即可,因此就可以在找到之后直接return返回。

在这里插入图片描述
将不满足条件的都丢入哈希表中。
以前是从前往后找,现在是从后往前找。

3 代码

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        vector<int> res;
        unordered_map<int, int> hash;

        for (int i = 0; i < nums.size(); ++ i)
        {
            int x = target - nums[i];   //根据nums[i],找nums中是否有值为x --> 逆向思考
            if (hash.count(x))
                return {hash[x], i};
            
            //如果没有找到就建立哈希映射
            hash[nums[i]] = i;
        }

        return {-1, -1};
    }
};

在这里插入图片描述


http://www.kler.cn/a/348917.html

相关文章:

  • 鸿蒙--播放器状态控制
  • springcloud之基于RabbitMQ消息总线方式刷新配置服务
  • Linux下的杀毒软件介绍
  • 使用OpenCV实现基于EigenFaces的人脸识别
  • 道路车辆功能安全 ISO 26262标准(4-3)—系统级产品开发
  • KinDEL数据集:包含8100万个小分子的库,为激酶抑制剂的发现提供了一个丰富且功能强大的资源。
  • JavaScript前端开发技术
  • IDEA断点调试查看底层源码---程序员必备核心素养
  • Android设置状态栏隐藏、固定颜色
  • SpringBoot +Vue3前后端分离项目入门基础实例二
  • 运用 JDK8 中的核心新特性
  • C++:vector(题目篇)
  • 022 elasticsearch文档管理(添加、修改、删除、批处理)
  • 【大数据应用开发】2023年全国职业院校技能大赛赛题第08套
  • 03 go语言(golang) - fmt包基本类型
  • 有点晕,inline, crossinline,noinline小计
  • Chromium 中HTML5 WebSocket实现分析c++(一)
  • 获取首日涨停封盘后第二次交易日上涨/下跌的概率
  • 六、结构型(适配器模式)
  • windows系统备份mysql数据库bat脚本