首页 > 其他分享 >两数之和(思路)

两数之和(思路)

时间:2023-02-04 18:12:03浏览次数:35  
标签:return target nums int vector 数组 思路 两数

题目:

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。

你可以按任意顺序返回答案。

构思:

想法一:

先进行一个排序,将数组升序排列,选择第一个数,然后target减去这个数,再从数组中寻找减后的数,因为排序,寻找数可以通过二分查找法查找。

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

不能排序,因为要输出原始的数组下标!

想法二:

通过哈希表,map字典来查找

可以将查找的时间复杂度降为1;

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};
            }
            hashtable[nums[i]] = i;
        }
        return {};
    }
};

因为要返回数组下标,且要查找的是数组值作为关键字,所以使用map。


此代码块为力扣官方题解,准确有效。

标签:return,target,nums,int,vector,数组,思路,两数
From: https://www.cnblogs.com/isku-ran/p/17092074.html

相关文章

  • 网安信息收集思路1
    网安信息收集思路  站点搭建分析搭建习惯--目录型站点由不同的目录来控制不同的网站页面,当其中的一个目录出现漏洞,另一个网页目录也会出现漏洞。搭建习惯--端口类......
  • 【力扣算法题-Python】1、两数的和
    (【力扣-Python】1、两数的和)题目题目:两数之和。难度:简单。给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target的那两个整数,并返......
  • 两数之和-双指针+哈希表
    链接:两数之和题目描述给定一个整数数组nums 和一个整数目标值target,请你在该数组中找出和为目标值target 的那 两个 整数,并返回它们的数组下标。你可以假设每......
  • 2023华数杯B题社会稳定预警研究的材料支撑以及解题思路【全网独家社会稳定预警研究材
    B题社会稳定预警研究材料支撑:(动态链接,后期会一直不断新增支撑论文进去)社会稳定预警研究材料支撑合集下载部分截图如下:(还会不断更新)题目问题B:社会稳定预警研究人类和......
  • [题解] P2685 [TJOI2012]桥 思路整理
    题目大意给一张\(n\)个点\(m\)条边的图,求删去一条边后最短路长度的最大值与对应删边方案数。思路首先考虑,如果删去的这条边不在原图最短路上,那么新图最短路长度与原......
  • #yyds干货盘点# LeetCode面试题:两数相加
    1.简述:给你两个 非空的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表......
  • 站库分离渗透思路技巧总结
     前言看到了某篇关于站库分离类型站点相关的讨论,想总结下信息收集的技巧。正文关于站库分离类型站点网上暂时没有找到总结性的文章,所以想尝试记录下关于站库分离类型站点......
  • 设计模式落地实战 | 观察者模式 | 功能性QQ机器人封装思路
     情况简介对接qq机器人,使用.Netsdk,不同群消息不同处理方式,但群消息事件要同时下发执行,各个群之间不分前后 开始封装定义一个群消息事件的数据类,存储要下发的数据p......
  • 用各种思路实现五个接口的编写
    目录用各种思路实现五个接口的编写一、基于Django原生写五个接口1.视图层代码2.路由层代码二、基于drf实现五个接口的编写1.视图层代码2.序列化代码3.路由层代码三、基于序......
  • 美团动态线程池实践思路
    大家好,今天我们来聊一个比较实用的话题,动态可监控的线程池实践,全新开源项目(DynamicTp)地址在下方写在前面稍微有些Java编程经验的小伙伴都知道,Java的精髓在juc包,这是大名鼎......