【Java SE 题库】LeetCode 热题 100--->两数之和

🔥 博客主页**🔥** :【 坊钰_CSDN博客

欢迎各位点赞**👍** 评论**✍收藏⭐**

目录

[1. 题目](#1. 题目)

[2. 解析](#2. 解析)

[2.1 判断两个数相加是否等于目标值](#2.1 判断两个数相加是否等于目标值)

[2.2 相等后,如何返回两个下标](#2.2 相等后,如何返回两个下标)

[3. 代码](#3. 代码)

[4. 小结](#4. 小结)


取于力扣-->LeetCode 热题 100 - 学习计划 - 力扣(LeetCode)全球极客挚爱的技术成长平台

1. 题目

给定一个整数数组 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]

2. 解析

这道题难度一般,只有两个难点

  • 怎么判断两个数相加等于目标值
  • 判断相等后,如何返回两个下标

2.1 判断两个数相加是否等于目标值

这种可以用快慢 "标识" 法,也就是用两个标识,起始位置分别指向数组的 0 下标,和 1 下标,并且在后面的标识始终比前面的标识大一位,这样就不会遇到两个标识指向同一位的情况

2.2 相等后,如何返回两个下标

这个问题难倒很多同学,想一想,两个下标是两个数,我们可以把它们存储倒数组中,然后在返回数组就可以了

3. 代码

java 复制代码
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
    }

}

4. 小结

以上就是对该题的了解,具体还需宝子们去实践,如果觉得该博客对你有用的话,希望一键三连,点个关注不迷路,谢谢支持 !

相关推荐
何事误红尘8 小时前
全志A40i学习笔记():开发资料、启用串口
学习
Nil2088 小时前
leetcode 54螺旋矩阵
算法·leetcode·矩阵
Nebula_g8 小时前
JavaSE基础语法:面向对象高级(代码中的成分)
java·开发语言·编程·javase·技术栈·高级语法
for_ever_love__8 小时前
python基础语法学习: 异常的传递性
开发语言·python·学习
PC2005-cloud8 小时前
DeepSeek Harness 创建 skill 指南:结构、安装、使用
笔记·学习
依然鸣8 小时前
PTA团体程序设计天梯赛L1真题讲解L1-077-080
开发语言·c++·算法·深度优先·pat考试·图论
YM52e8 小时前
分页查询的基石:ArkTS 为鸿蒙商品列表设计 LIMIT/OFFSET 的表
android·学习·华为·harmonyos
math_hongfan8 小时前
主从嵌套层次分明:ArkUI 订单卡片内嵌明细的鸿蒙界面
学习·华为·harmonyos
小强库计算机毕业设计10 小时前
SpringBoot+Vue3 学生宿舍管理系统实战
java·spring boot·后端·vue·学生宿舍管理系统
李冰然10 小时前
深入Java集合框架:HashMap源码解析(JDK 8)
java