两数之和 力扣1

ops/2025/3/11 4:22:51/

一、题目

给定一个整数数组 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
输出:[1,2]

示例 3:

输入:nums = [3,3], target = 6
输出:[0,1]

二、思路

        最先想到的就是双for循环解决。

        有没有别的方法呢,可以采用哈希法。当我们需要查询一个元素是否出现过,或者一个元素是否在集合里的时候,就要第一时间想到哈希法。定义一个map集合,map中的存储结构为 {key:数据元素,value:数组元素对应的下标}。

三、代码

        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[i] + nums[j] == target) {return new int[] {i,j};}}}return new int[]{0,0};}
}

 2、map集合

        题目说可以按任意顺序返回答案,因此顺序无需考虑。

class Solution {public int[] twoSum(int[] nums, int target) {//哈希: 当我们需要查询一个元素是否出现过,或者一个元素是否在集合里的时候,就要第一时间想到哈希法。HashMap<Integer,Integer> map = new HashMap<>();for (int i = 0; i < nums.length; i++) {int a = target - nums[i]; //记录当前的目标值的余数if(map.containsKey(a)) { // 查找当前的map中是否有满足要求的值return new int[]{map.get(a),i};//  如果有,返回目标值}else{map.put(nums[i],i);//  如果没有,把访问过的元素和下标加入map中}}return null;}
}

 


http://www.ppmy.cn/ops/164837.html

相关文章

[项目]基于FreeRTOS的STM32四轴飞行器: 五.Motor驱动

基于FreeRTOS的STM32四轴飞行器: 五.Motor驱动 一.配置CubeMX二.Motor驱动3.bug修改 一.配置CubeMX 观察motor原理图引脚对应的TIM&#xff1a; 使用内部时钟&#xff0c;配置4分频&#xff0c;后为18M&#xff0c;在设置Counter Period为1000-1&#xff0c;之后频率为18K&am…

游戏引擎学习第139天

决定做一个音频混音器 我们正在进行一个完整的游戏开发&#xff0c;完全从零开始&#xff0c;不使用任何游戏引擎或第三方库&#xff0c;而是亲手实现所有底层技术。目前&#xff0c;我们正处于一个决策点&#xff0c;思考接下来的开发方向。在上一次的开发过程中&#xff0c;…

解决电脑问题(1)——硬件问题

电脑硬件出现问题可以按照以下思路和方法进行解决&#xff1a; 电源问题 症状&#xff1a;电脑完全无法开机&#xff0c;电源指示灯不亮&#xff0c;风扇不转。检查方法&#xff1a;首先检查电源插头是否插紧&#xff0c;尝试更换一个电源插座&#xff0c;看是否能解决问题。如…

家政小程序源码功能方案详细php

家政小程序功能方案详解&#xff0c;开发语言后端php&#xff0c;前端uniapp&#xff0c;九九网络技术独立开发系统&#xff0c;可以源码搭建&#xff0c;也可以二开、定制开发。选择多样性。 核心功能模块&#xff1a; 一用户端&#xff1a;小程序 1.选择服务&#xff1a;服务…

Android中的Loader机制

Android中的Loader机制是在Android 3.0版本之后引入的一种异步加载数据的方法。以下是对Android中Loader机制的详细解释&#xff1a; 一、Loader机制的基本概念 Loader是Android提供的一种异步加载数据的机制&#xff0c;它可以在后台线程中执行耗时操作&#xff0c;并在加载…

linux下 jq 截取json文件信息

背景&#xff1a;通过‘登录名‘ 获取该对象的其他个人信息如名字。 环境准备&#xff1a;麒麟操作系统V10 jq安装包 jq安装包获取方式&#xff1a;yum install jq 或 使用附件中的rpm 或 git自行下载 https://github.com/stedolan/jq/releases/download/ 实现过程介绍&am…

Visual Studio 2022新建c语言项目的详细步骤

步骤1&#xff1a;点击创建新项目 步骤2&#xff1a;到了项目模板 --> 选择“控制台应用” (在window终端运行代码。默认打印"Hello World") --> 点击 “下一步” 步骤3&#xff1a;到了配置新项目模块 --> 输入“项目名称” --> 更改“位置”路径&…

elasticsearch是哪家的

Elasticsearch&#xff1a;数据搜索与分析的领航者 在当今这个信息爆炸的时代&#xff0c;快速且准确地处理海量数据成为了众多企业和组织追求的目标。而Elasticsearch正是在这个背景下脱颖而出的一款强大的开源搜索引擎。它是由位于美国加利福尼亚州的Elastic公司所开发和维护…