LeetCode 两数之和

力扣(Leetcode)第1题:两数之和(C语言版本) 题目: 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出和为目标值 target 的那两个整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 示例 1: 输入:nums = [2,7,11,15], target = 9 输出:[0,1] 解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。 示例 2: 输入:nums = [3,2,4], target = 6 阅读详情

LeetCode题目网址:

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

题目描述:

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

你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。

示例:

给定 nums = [2, 7, 11, 15], target = 9

因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

来源:力扣(LeetCode)

首先从题目描述中给出的几个信息

1.一组整数数组和目标值,

2.从数组中找出和为目标值的两个数组的角标值,并返回

3.不能重复使用给整数数组中的元素,并且只有一组角标符合要求

思路1.

很多人都想到通过两次for循环,找出正确的index,也就是i = 0,对应的数组织,对其他所有的元素进行遍历循环,依次进行相加得到的值是否等于target,想说的是:这样处理比较耗时并且效率很低。这样做的弊端,双重for循环,设计到数组重排,并且角标也会被打乱了,很难得到结果

思路2

是否可以通过一次for循环,就能得到咱们想要的结果呢?

答案是当然可以,思路1是确定一个数的同时在确定另外一个数,那么能不能在确定一个数的同时确定另外一个数的索引呢?也就是两个数数的不同信息

哈希表 - Map可以同时存储两种信息,并让其对应起来。
数组也可以看做一个哈希表,其索引和数值一一对应,a[i] = value;

思路是将当前数和target的差值作为Key值,将当前数的角标作为Value值,这样Key表示咱们对另外一个数的信息,而Value表示当前数的信息,

举例:target为9,当前角标0的数值为2,角标0作为Value,那么他们之间的差值是7,作为Key,两者的和就是target

package com.example.myapp;

import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;

import java.util.HashMap;
import java.util.Map;

/**
 * Created by mike.
 * Created on 2020/3/11.
 */
public class Code3_11_TwoNum {
    @Test
    public void Test() {
        int[] ints = {2, 7, 11, 15};
        Assert.assertArrayEquals(new int[]{0,1},twoSums(ints,9));
        Assert.assertArrayEquals(new int[]{-1,-1},twoSums(ints,15));
    }

    private int[] twoSums(int[] nums, int target) {
        int[] ints = {-1,-1};
        if(ints == null || ints.length <= 1){
            return ints;
        }
        Map<Integer, Integer> hashMap = new HashMap<>();
        for (int i = 0; i < nums.length; i++) {
            if(hashMap.containsKey(nums[i])){
                ints[0] = hashMap.get(nums[i]);
                ints[1] = i;
                return ints;
            }else {
                hashMap.put(target - nums[i], i);
            }
        }

        return ints;
    }


//
//-1,-1
//
//    i=0不包含key,false
//
//            7,0
//    hashmap
//
//            i = 1
//
//    rs[0]=7
//
//    re[1]=1
//
//    rs =new int
//
//    {
//        7, 1
//    }
}

 

 

 

c++ leetcode 力扣 1. 两数之和 这是力扣的第一题 两数之和 题目是这么描述的: 两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 示例 1: 输入:nums = [2,7,11,15], target = 9 输出:[0,1] 解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。 示例 2: 阅读详情

相关推荐

力扣1. 两数之和——《解题者:力扣解题之路》

前言:不同于某些OJ,力扣第一题对初学者不是很友好,初次看到它,可能一时想不到思路——但须知万事开头难,走出第一步,即相当于成功一半—— 而:我将为你认认真真地解开它ヾ(◍°∇°◍)ノ゙ ...

01解题者~博客 4224

力扣LeetCode刷题C++ 两数之和 两数相加

这段代码的核心是 “逐步构建链表”:从无到有创建头节点,之后每计算出一位结果,就往链表末尾加一个新节点,同时让指针p始终保持在末尾,为下一次追加做准备。这样就能把所有计算结果串联成一个完整的链表。

weixin_73793168的博客 1091

命令行驱动视频剪辑:cutcli与AI自动化工作流实战

在视频内容创作领域,自动化与批量化处理是提升生产效率的关键。传统图形界面工具在应对重复性任务时往往效率低下,而通过命令行接口(CLI)驱动视频生成,则能实现流程的程序化控制。其技术原理在于将视频结构抽象为可编程的指令序列,通过解析命令生成标准化的工程文件。这种模式的核心价值在于将视频制作从手动操作转变为代码驱动,特别适合与AI编程助手集成,实现自然语言到视频草稿的自动转换。应用场景广泛覆盖社交媒体内容批量生产、教育视频自动化生成、数据可视化视频组装等领域。本文以cutcli工具为例,深入解析如何通过命令行与

weixin_42520239的博客 579

【力扣(LeetCode)】两数之和

【力扣题库】#1 两数之和 给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。 示例1: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 ...

coding 763

VSAN闪存缓存磁盘故障处理指南-RAID0模式实战解析

本文详细解析了VSAN集群中RAID0模式下的闪存缓存磁盘故障处理全流程。通过模拟真实故障场景,从告警识别、数据重建策略到磁盘组重构,提供了手把手的实战操作指南,并深入探讨了RAID0缓存故障的独特影响与风险,为运维人员应对此类高性能存储架构的突发问题提供了专业解决方案。

assembly8low的博客 446

[UE5蓝图基础二]1.[1d混合空间] 走和跑的动画切换(shift切换)

再双击”run”进去 我们需要给他指定一个动画姿势,这里就需要给他我们前面做的”1d”混合空间,然后可以看到”1d” 上有个speed参数,代表的速度 从前面的逻辑来看需要通过控制速度来切换动画,那么必然不能写死速度,把速度提升为变量传递进来即可,所以就得到以下蓝图节点。混合空间的概念:混合空间就是可以将角色多个动画混合在一起 ,我们创建动画类就是创建个”Animation”文件夹 在文件夹内创建混合空间。我们目前要实现的是一个走和跑的功能 那么创建1d即可。到这一步混合空间已经做完 下一步做”动画蓝图”

qq_30584617的博客 3300

力扣 (LeetCode)-两数之和,有效的括号,两数相加

Github来源:力扣 (LeetCode)|刷题打卡 | 求星星 ✨ | 给个❤️关注,❤️点赞,❤️鼓励一下作者[已开启]任务一:刷题打卡 * 10 篇大家好,我是魔王哪吒,很高兴认识...

程序员哆啦A梦,蓝胖子 2218

星光、黑光、全彩夜视摄像头技术解析与实战选型指南

本文深入解析了星光、黑光、全彩与红外等主流夜视摄像头技术的工作原理与核心差异。针对不同监控场景与预算,提供了实战选型指南,帮助用户在安防项目中做出明智决策,实现夜间监控效果最大化。

weixin_29179311的博客 352

力扣LeetCode:Python3代码解析 — 1.两数之和

力扣LeetCode:Python解题 — 1.两数之和两数之和解法一:双循环解法二:缓存数值结果对比 两数之和 难度:简单 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] 解法一:双

Senimo 760

【技术解析】AlexNet——从ReLU到Dropout的深度学习关键突破

本文深入解析AlexNet在深度学习领域的关键突破,重点探讨了ReLU激活函数和Dropout技术的革命性应用。作为卷积神经网络的里程碑,AlexNet通过ReLU解决梯度消失问题,利用Dropout有效防止过拟合,为现代深度学习模型奠定了重要基础。这些创新技术至今仍在计算机视觉和自然语言处理等领域发挥重要作用。

weixin_33719619的博客 274

YOLO26涨点改进 |TGRS 2026 | 全网独家改进、特征融合创新篇 | 引入CMIFE跨模态交互特征提取模块,充分挖掘互补信息,适合多模态图像融合,目标检测,实例分割,遥感图像分类高效涨点

本文提出CMIFE模块用于改进YOLO26网络模型,通过跨模态交互特征提取实现多尺度特征的精细化融合。该模块采用双注意力机制(自注意力强化模态内一致性,交叉注意力实现跨模态互补信息筛选),有效解决了传统YOLO融合中的信息冗余和负迁移问题。实验表明,CMIFE模块在保持模型实时性的同时,显著提升了小目标检测、遮挡场景等复杂环境下的检测精度。文章详细介绍了模块原理、网络结构、核心代码实现方法,并提供了三种改进版YOLO26的配置文件方案(yolo26_CMIFE-1/2/3.yaml)。

Ai缝合怪、助力小伙伴高效发论文 147

LeetCode力扣真题解惑第2篇 —— 力扣第1题:两数之和

LeetCode力扣真题解惑第2篇 —— 力扣第1题:两数之和 1. 两数之和。 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] 来源:力扣(LeetCode) 链接:https://le

浮生若梦,云游四方 815

YOLO26改进策略【Neck】| CVPR2025 LCA轻量交叉注意力 跨层级双向引导 + 分层降噪增强,提升微小目标特征表达

简单相加、拼接融合无法建立深浅层双向约束关系,浅层微小目标易被深层背景覆盖,深层全局信息难以修正浅层噪声;普通单路自注意力仅单一层内建模依赖,缺少跨层级特征互引导机制,深浅特征信息割裂;标准多头跨注意力计算量大、参数量高,轻量化单模态检测/分割网络部署困难,无法区分前景目标与背景噪声。为此设计单模态轻量化交叉注意力LCA,构建浅层细节、深层语义双分支双向引导结构,轻量完成跨层级特征交互,同步降噪并强化单模态微小目标特征。

Limiiiing的博客 523

【力扣】1、两数之和

系列文章目录 【力扣】1、两数之和 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 一、pandas是什么? 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分

一个卑微的java开发 1549

GEE APP:基于GEE的红树林监测平台

本文将介绍如何利用Google Earth Engine平台,结合Landsat系列卫星影像和SRTM高程数据,实现红树林分布的动态监测与变化分析。

此星光明博客 160

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Leetcode力扣——1.两数之和

LeetCode第一题 给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。...

qq_52222102的博客 1998

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

力扣leetcode题库练习(C++)—1.两数之和

力扣leetcode题库练习(C++)—1.两数之和题目描述示例代码及注释如下结果如下注 题目描述 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 示例 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0...

weixin_45682431的博客 916

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

leetcode 力扣 两数之和

class Solution: def addTwoNumbers(self, l1, l2): n1 = [] n2 = [] nl = [] while l1.next and l2.next: n1.append(l1.val) n2.append(l2.val) ...

weixin_30912051的博客 114

力扣leetcode题目分析——两数之和

说明 同学跟我说要多在力扣上面刷题,这样才能越来越厉害,据说有些大牛之所以为大牛,就是因为在上面刷了一两年。哈哈哈,开个玩笑。不过如果坚持做下去,应该收获很大吧。像我这种学渣,只能从最简单的开始,接受大家的鄙视。 鸡汤 下面最近很喜欢一句话,决定每天晚上睡觉前念一遍,写个毒鸡汤,大家共勉吧。 我已经拥有的,都是我努力得到的 题目 ...

hansmu的博客 526

力扣LeetCode第一题两数之和

力扣LeetCode第一题两数之和

weixin_44061444的博客 299

两数之和 力扣

本文以力扣最简单的题目为例,记录答题方法。 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所...

ShineRoyal 254

【leetcode】Java 力扣第一题(两数之和)简单

废话不多说,直接上干货 Leetcode每日一题 2021/10/18开启,有的人夜里去看海,有的人力扣第一题就做不出来 犹记得那次在刘老师强推下开了力扣的刷题之旅, 用打开力扣APP 第一题,选择简单模式,轻车熟路,啧啧啧 给定一个整数数组nums和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那两个整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 这不...

m0_56164356的博客 2629

力扣leetcode之一:两数之和

两数之和问题要求在数组中找到两个和为target的元素并返回索引。采用双重循环解法:外层循环遍历数组每个元素i,内层循环从i+1开始遍历剩余元素j。当nums[i]+nums[j]等于target时返回[i,j]。该方法时间复杂度O(n²),空间复杂度O(1),是直观的暴力解法。

qq_58675272的博客 504

力扣LeetCode,两数之和

1、给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 示例: 1 给定 nums = [2, 7, 11, 15], target = 9 2 3 因为 nums[0] + nums[1] = 2 + 7 = 9 4 所以返回 [0,...

Biexiansheng的博客 501

leetcode/力扣第1题 两数之和

malloc(2*sizeof(int)),这就是请求了两个int大小的内存,它默认返回void*,也就是无类型定义的,所以需要强制转换一下。如(int*)malloc(2*(sizeof(int)));所以 int* result = (int*)malloc(2*sizeof(int));和free的使用,malloc本质是在堆上请求分配内存,请求多大的呢,比如。:把任意大小的数据,通过某种函数映射成固定大小的值,这个值就是。:用哈希值快速索引数据的结构。找到,返回 [0,1]

m0_49366142的博客 466

力扣(LeetCode):#1-两数之和

力扣(LeetCode):#1-两数之和 题目描述 题解 方法一:暴力法 class Solution { public int[] twoSum(int[] nums, int target) { for (int i = 0; i < nums.length; i++) { for (int j = i + 1; j < nums.length; j++) { if (nums[j] == target -

忘尘丶莫负的博客 429
上一篇: 在代码中 %d和%s的巧妙使用
下一篇: SmartRefreshLayout 下拉刷新和上拉加载更多数据处理
fyldragonfyl
博客等级 码龄12年 9粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值