闯关leetcode——1.Two Sum

news2024/12/29 9:39:30

大纲

  • 题目
    • 地址
    • 内容
  • 解题
    • 代码地址

题目

地址

https://leetcode.com/problems/two-sum/description/

内容

Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target.

You may assume that each input would have exactly one solution, and you may not use the same element twice.

You can return the answer in any order.

Example 1:

Input: nums = [2,7,11,15], target = 9
Output: [0,1]
Explanation: Because nums[0] + nums[1] == 9, we return [0, 1].

Example 2:

Input: nums = [3,2,4], target = 6
Output: [1,2]

Example 3:

Input: nums = [3,3], target = 6
Output: [0,1]

Constraints:

  • 2 <= nums.length <= 104
  • -109 <= nums[i] <= 109
  • -109 <= target <= 109
  • Only one valid answer exists.

解题

这题的意思是在一个无序数组中找到两个数字,它们的和是给定的目标数字,并按从小到大的顺序返回它们的下标。
“无序数组”意味着这题逃不掉遍历;“从小到大”意味着遍历方向是从低位开始。
为了表述方便,我们称这样的一对数字互为朋友数字。
那么这题的思路就很简单了:从低位开始遍历,查看该数是否是已经遍历过的数字的朋友数字。如果是,则返回它们的下标;如果不是,则记录该数的朋友数字和自己下标。
朋友数字和下标需要绑定,即可以通过朋友数字找到下标。
具体一点,比如7和2互为朋友数字。遍历到7的是否,发现之前没有哪个数字是它的朋友,则记录它的朋友数字9-7=2和下标0为{2,0}。遍历到2时,发现它是之前某数(7)的朋友数字,则返回它们的下标[0,1]。

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

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        unordered_map<int, int> num_map;
        for (int i = 0; i < nums.size(); ++i) {
            if (auto it = num_map.find(nums[i]); it != num_map.end()) {
                return {it->second, i};
            }
            num_map[target - nums[i]] = i;
        }
        return {-1, -1};
    }
};

在这里插入图片描述

代码地址

https://github.com/f304646673/leetcode/tree/main/1-Two-Sum

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

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

相关文章

MCU5.51单片机的最小系统

1.最小系统的组成部分 晶振电路(时钟),复位电路,电源电路(控制电压,保持稳定),下载电路(外加的,用于烧录程序) 烧录: 通过下载电路,把程序下载到单片机中用于运行 2.晶振电路 电路图: 是晶振 是电容 为了防止晶振起振时产生影响,因此加电容 3.复位电路 电路图: 按按钮RS…

音视频开发之旅(92)-多模态Clip论文解读与源码分析

目录 1. 背景和问题 2. CLIP模型结构 3. 实验效果 4. 源码分析 5. CLIP的局限性和不足 6. 资料 一. 背景和问题 在做分类 检测以及分割任务时,数据的标注非常关键, 比如可用于分类任务的ImageNet数据集共有120万张图片1000个分类, 可用于目标检测和分割任务的COCO数据集…

应用层简单实现udp / tcp网络通信

一、常见网络接口总结 1、创建 socket 文件描述符 (TCP/UDP, 客户端 服务器) int socket(int domain, int type, int protocol); domain&#xff1a;AF_INET&#xff1a;网络通信&#xff0c;AF_LOCAL&#xff1a;本地通信 type&#xff1a;UDP&#xff1a;SOCK_DGRAM&…

AI是不是真的能落地应用,未来看看这三个行业

大家好&#xff0c;我是凡人&#xff0c;最近也被GPT-4o刷爆了朋友圈&#xff0c;各种对OpenAI新布局的猜想也是层出不穷。GPT-4o再次将多模态交互拉到了新高度&#xff0c;一放出就颠覆了原有 AI 给传统行业带来新冲击。 还有不了解GPT-4o 的同学&#xff0c;可以查看我上一篇…

Java异常体系----深入讲解

JAVA异常体系 1.error 错误 程序无法处理的异常&#xff0c; 它是由JVM产生和抛出的,比如OutOfMemoryError.ThreadDeath等 示例&#xff1a; public class Test {public static void main(String[] args) {run();}public static void run(){run();} }堆栈溢出&#xff0c;…

828华为云征文|基于华为云Flexus云服务器X实例部搭建Halo博客平台

华为云征文&#xff5c;基于华为云Flexus云服务器X实例部搭建Halo博客平台 前言一、Flexus云服务器X实例介绍1.1 Flexus云服务器X实例简介1.2 Flexus云服务器X实例特点1.3 Flexus云服务器X实例使用场景 二、Halo介绍2.1 Halo 简介2.2 Halo 特点 三、本次实践介绍3.1 本次实践简…

Linux日志-journal日志

作者介绍&#xff1a;简历上没有一个精通的运维工程师。希望大家多多关注作者&#xff0c;下面的思维导图也是预计更新的内容和当前进度(不定时更新)。 Linux 系统中的日志是记录系统活动和事件的重要工具&#xff0c;它们可以帮助管理员监视系统状态、调查问题以及了解系统运行…

Linux Debian12安装原生版微信

1.原生版微信下载地址&#xff1a; https://archive.ubuntukylin.com/software/pool/partner/找到weixin&#xff0c;2022年05月23日最新版本&#xff0c;weixin_2.1.4_amd64.deb&#xff0c;下载。 2.微信安装&#xff1a; sudo dpkg -i weixin_2.1.4_amd64.deb3.登陆即可。…

如何在3DMAX中实现大规模项目的地形建模?

在房地产开发项目的环境建模过程中&#xff0c;我们对斜坡和不平坦地形进行建模是一项具有挑战性的任务。 我们已经制定了两种方法来纠正这一点。首先&#xff0c;让我告诉你&#xff0c;我们并没有想过如何使用NURBS来实现这一点&#xff0c;我们通常坚持使用多边形&#xff…

ueditor视频上传

修改video.js中uploadBeforeSend方法 位置: 修改为: uploader.on(uploadBeforeSend, function (file, data, header) {//这里可以通过data对象添加POST参数const token =******//根据各自项目情况,获取到存储的tokenheader[X_Requested_With] = XMLHttpRequestheader[Aut…

气膜场馆:乡村振兴中的健康与经济新引擎—轻空间

随着乡村振兴战略的深入推进&#xff0c;气膜场馆作为新兴建筑形式&#xff0c;正在为农村地区带来全新的发展机遇。它不仅是乡村百姓锻炼身体的好去处&#xff0c;更是带动当地经济发展的强劲动力。 首先&#xff0c;气膜场馆为农村地区的居民提供了更多运动健身的机会。与传统…

Redis 缓存深度解析:穿透、击穿、雪崩与预热的全面解读

Redis 缓存深度解析&#xff1a;穿透、击穿、雪崩与预热的全面解读 一 . 什么是缓存 ?二 . 使用 Redis 作为缓存三 . 缓存的更新策略3.1 定期生成3.2 实时生成 四 . 缓存预热、缓存穿透、缓存雪崩、缓存击穿4.1 缓存预热4.2 缓存穿透4.3 缓存雪崩4.4 缓存击穿 Hello , 大家好 …

2025届计算机毕业设计:如何构建Java SpringBoot+Vue个人健康档案管理系统?

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

全能AI神器!工作效率提升80倍!Zmo.ai带你玩转AI做图!

今天&#xff0c;我要给大家介绍一款神器&#xff1a;Zmo.ai。 这个平台简直是做图神器&#xff0c;集多种功能于一身&#xff0c;让你像专业人士一样轻松创建和编辑图像&#xff0c;不需要任何美术与设计基础&#xff0c;真的非常适合我们这些“手残党”&#xff01; 我们只需…

香港服务器机房托管:优化全球访问体验的最佳选择

在当今全球化的商业环境中&#xff0c;出海企业面临着前所未有的挑战与机遇。为了在全球范围内高效运营&#xff0c;确保公司内部系统、网站及应用的顺畅访问成为了企业成功的关键。尤其是当企业需要同时服务国内管理团队与海外客户时&#xff0c;如何选择一个既能降低国内访问…

数字化平台跨界融合增值:新起点与新机遇

亲爱的朋友们&#xff0c;在这个快速发展的数字化时代&#xff0c;有一个重要的趋势正站在新起点上&#xff0c;那就是数字化平台跨界融合增值。 新起点的基石技术基础夯实&#xff1a;如今&#xff0c;5G 网络已经全面普及&#xff0c;物联网技术也在深度发展&#xff0c;再加…

AI编程辅助工具先锋:豆包MarsCode

在科技日新月异的今天&#xff0c;AI正以不可阻挡之势渗透到各行各业&#xff0c;其中编程辅助领域也正经历着一场前所未有的变革。随着AI技术的不断成熟与应用深化&#xff0c;编程辅助工具正逐步从简单的代码补全、语法检查&#xff0c;迈向更加智能化、个性化的全方位辅助&a…

【Python 学习】Numpy的基础和应用

目录 1 数组基础1.1 Numpy简介1.2 Numpy数组基础1.3 创建数组1.3.1 使用np.array()函数生成数组1.3.2 利用内置函数产生特定形式的数组1.3.2.1 简单内置函数1.3.2.2 特殊内置函数 1.3.3 生成随机数组 1.4 数组的数据类型1.5 数组的迭代1.6数组的索引和切片1.6.1 一维数组的索引…

NULL 輸出情況

NULL值 輸出情況區分 匯總圖片 select 空 param1 -> param1&#xff1a;null select param1 from 空 —> param1&#xff1a;空 NULL 值出現在查詢結果中 只能由 SELELCT 和 聚合函數 產生 而不是 LIMIT WHERE HAVING FROM 語句 REFERENCE Leetcode 解析

[QT] QT事件与事件重写

一.事件 事件(event)是由系统或者 Qt本身在不同的场景下发出的。当用户按下鼠标、敲下键盘&#xff0c;或者是窗口关闭等都会发出一个相应的事件。 一些事件在用户操作时发出(如鼠标/键盘事件); 另一些事件则是由系统自动发出(如计时器事件)。 Qt窗口中对于产生的一系列事件都…