力扣L6--- 两数之和(java版)--2024年3月12日

1.题目

在这里插入图片描述

2.知识点

注1:在Java中,数组的长度不是通过调用一个方法获得的,而是通过一个属性直接获得的。因此,正确的语法是nums.length而不是nums.length()。
所以应该使用int m = nums.length;

注2:return new int[]{i, j}; 使用了 Java 中的数组初始化语法。这种语法允许你在创建数组时,直接为数组的元素赋值,而无需显式地指定数组的大小。

另外创建数组的方法:

//指定数组大小创建数组
int[] newArray = new int[5]; // 创建一个包含5个整数的新数组
//通过循环为数组赋值
for (int i = 0; i < newArray.length; i++) {
    newArray[i] = i * 2; // 将数组中的元素设置为其索引值的两倍
}


//通过数组字面值初始化数组
int[] newArray = {1, 2, 3, 4, 5}; // 创建一个包含指定元素的新数组

注3:

return new int[0]; 这行代码是在返回一个空的整数数组。

在这里,new int[0] 创建了一个长度为0的整数数组。因为数组的长度为0,所以它不包含任何元素。这样的数组被称为“空数组”。

注4:++i 和 i++ 是递增操作符,它们都用于增加变量的值,但它们之间确实有区别。

++i: 这是前缀递增操作符。它会先将变量增加 1,然后返回增加后的值。换句话说,++i 会先执行递增操作,然后返回递增后的值。

i++: 这是后缀递增操作符。它会先返回变量的当前值,然后再将变量增加 1。换句话说,i++ 会先返回变量的值,然后再执行递增操作。

int i = 5;
int a = ++i; // 先将 i 增加 1,然后将增加后的值赋给 a,此时 i 的值为 6,a 的值也为 6。
int b = i++; // 先将 i 的值赋给 b,然后再将 i 增加 1,此时 b 的值为 6,i 的值为 7。

3.代码思路:

(1)for (int i = 0; i < n - 1; ++i) {: 这是一个嵌套的 for 循环,外部循环遍历数组 nums 的每个元素,内部循环从外部循环当前元素的下一个元素开始遍历。

(2)for (int j = i + 1; j < n; ++j) {: 内部循环从外部循环的当前元素的下一个元素开始遍历直到数组末尾。

举个例子:假设有一个数组 nums = [3, 2, 4, 7, 6],目标值 target = 10。
外部循环开始时,i = 0,内部循环从 j = i + 1 = 1 开始,内部循环将遍历数组的剩余部分 [2, 4, 7, 6]。
当 i = 0 时,内部循环会检查 nums[0] + nums[1] 是否等于目标值 10,即 3 + 2 = 5。不符合条件,继续内部循环。
当 i = 0 时,内部循环会检查 nums[0] + nums[2] 是否等于目标值 10,即 3 + 4 = 7。不符合条件,继续内部循环。
当 i = 0 时,内部循环会检查 nums[0] + nums[3] 是否等于目标值 10,即 3 + 7 = 10。符合条件,返回 [0, 3]。
外部循环进入下一轮,i = 1。内部循环从 j = i + 1 = 2 开始,遍历数组的剩余部分 [4, 7, 6]。
当 i = 1 时,内部循环会检查 nums[1] + nums[2] 是否等于目标值 10,即 2 + 4 = 6。不符合条件,继续内部循环。
当 i = 1 时,内部循环会检查 nums[1] + nums[3] 是否等于目标值 10,即 2 + 7 = 9。不符合条件,继续内部循环。
当 i = 1 时,内部循环会检查 nums[1] + nums[4] 是否等于目标值 10,即 2 + 6 = 8。不符合条件,继续内部循环。
外部循环进入下一轮,i = 2。内部循环从 j = i + 1 = 3 开始,遍历数组的剩余部分 [7, 6]。
当 i = 2 时,内部循环会检查 nums[2] + nums[3] 是否等于目标值 10,即 4 + 7 = 11。不符合条件,继续内部循环。
当 i = 2 时,内部循环会检查 nums[2] + nums[4] 是否等于目标值 10,即 4 + 6 = 10。符合条件,返回 [2, 4]。
外部循环进入下一轮,i = 3。由于 i = 3,不满足 i < n - 1 的条件,外部循环结束。
因此,该算法返回 [0, 3] 和 [2, 4] 两个答案,表示在给定数组中,下标为 0 和 3 的两个元素 [3, 7] 和下标为 2 和 4 的两个元素 [4, 6] 的和均为目标值 10。

4.代码实现

class Solution {
    public int[] twoSum(int[] nums, int target) {

        int m=nums.length;

        for(int i=0;i<m-1;++i)
        {
            for(int j=i+1;j<m;++j)
            {
                if(nums[i]+nums[j]==target)
                return new int[]{i,j};
            }
        }
        return null;
        //还有一种写法是返回为空的整数数组,return new int[0];
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

3DMAX的选择模型高亮显示方式

1、选择时会显示有个外框&#xff0c;J或ShiftJ。 2 首选项设置里有高亮设置 3 就像F4一样&#xff0c;选择时边面显示

Spring Boot Admin服务监控

目录 概述实践server端pom.xml类配置结果clientpom.xml配置 结束 概述 Spring Boot Admin 集权限、日志、异常通知。 实践 server端 pom.xml <!-- SpringBoot Admin --> <dependency><groupId>de.codecentric</groupId><artifactId>spring-…

【算法面试题】-07

小明找位置 题目描述 小朋友出操&#xff0c;按学号从小到大排成一列;小明来迟了&#xff0c;请你给小明出个主意&#xff0c;让他尽快找到他应该排的位置。 算法复杂度要求不高于nLog(n);学号为整数类型&#xff0c;队列规模<10000; 输入描述 1、第一行:输入已排成队列的…

STM32外设分类--学习笔记

简介: 本文在于根据自己的理解&#xff0c;将stm32f103外设按照功能分个类别&#xff0c;便于记忆。下面的几张图一定要熟悉&#xff0c;后期编写代码时能够快速找到想要的功能和对应的引脚。 我使用的工具链是&#xff1a;使用CubeMX完成keil5工程搭建和引脚初始化功能,然后用…

使用Maven打包时出现Please refer to D:路径 for the individual怎么解决?

遇到这种情况不要着急&#xff0c;直接按照下面步骤即可&#xff1a; 解决方法1 可能是你的测试用例里出现了bug&#xff0c;根据下面提示的路径可以找到bug&#xff0c;打开 txt 文件&#xff08;可以每个都打开&#xff0c;不一定是哪个出bug了&#xff09; 去项目中修改完…

LeetCode(力扣)算法题_1261_在受污染的二叉树中查找元素

今天是2024年3月12日&#xff0c;可能是因为今天是植树节的原因&#xff0c;今天的每日一题是二叉树&#x1f64f;&#x1f3fb; 在受污染的二叉树中查找元素 题目描述 给出一个满足下述规则的二叉树&#xff1a; root.val 0 如果 treeNode.val x 且 treeNode.left ! n…

基于pci多功能采集卡——pci9640

一、追逐潮流&#xff0c;应运而生 信息社会的高速发展&#xff0c;在很大程度上取决于信息与信号处理的先进性。数字信号处理技术的出现改变了信号与信号处理技术的整个面貌&#xff0c;而数据采集作为数字信号处理的必不可少的前期工作在整个数字系统中起到关键性乃至决定性的…

C# RAM Stable Diffusion 提示词反推 Onnx Demo

目录 介绍 效果 模型信息 项目 代码 下载 C# RAM Stable Diffusion 提示词反推 Onnx Demo 介绍 github地址&#xff1a;GitHub - xinyu1205/recognize-anything: Open-source and strong foundation image recognition models. Open-source and strong foundation ima…

【Android】源码中的建造者模式

本文是基于 Android 14 的源码解析 在 Android 源码中&#xff0c;最常用到的建造者模式就是 AlertDialog.Builder&#xff0c;使用该建造者来构建复杂的 AlertDialog 对象。在开发过程中&#xff0c;我们经常用到 AlertDialog&#xff0c;具体示例如下&#xff1a; private f…

SA3D:基于 NeRF 的三维场景分割方法

Paper: Cen J, Zhou Z, Fang J, et al. Segment anything in 3d with nerfs[J]. Advances in Neural Information Processing Systems, 2024, 36. Introduction: https://jumpat.github.io/SA3D/ Code: https://github.com/Jumpat/SegmentAnythingin3D SA3D 是一种用于 NeRF 表…

RabbitMQ 面试题及答案整理,最新面试题

RabbitMQ的核心组件有哪些&#xff1f; RabbitMQ的核心组件包括&#xff1a; 1、生产者&#xff08;Producer&#xff09;&#xff1a; 生产者是发送消息到RabbitMQ的应用程序。 2、消费者&#xff08;Consumer&#xff09;&#xff1a; 消费者是接收RabbitMQ消息的应用程序…

阿里云领盲盒活动

阿里云每次的活动都很给力&#xff0c;实打实地发东西。 这次是体验 通义灵码 的活动&#xff0c;这个是体验的推广链接 「通义灵码 体验 AI 编码&#xff0c;开 AI 盲盒」 我是在vscode安装的&#xff0c;体验还行&#xff0c;抽奖抽到了马克杯 这个是抽奖的具体步骤 https:…

mysql对索引的选择简述

概述 在业务中经常会优化一些mysql的慢查询&#xff0c;通常都是使用explain去查看分析&#xff0c;检查扫描行数和索引的命中情况&#xff1b; 但是在具体索引的选择上&#xff0c;explain结果中并没有直接展示出来&#xff1b; 此时可以开启mysql的追踪优化器Trace功能&…

【Greenhills】MULTI IDE网络版license统计授权使用情况

【更多软件使用问题请点击亿道电子官方网站查询】 1、 文档目标 用于购买了GHS网络版的客户&#xff0c;对于license的调用情况进行统计和管理 2、 问题场景 对于购买了GHS网络版license的客户&#xff0c;想要对于授权的使用情况进行分析和管理&#xff0c;但是&#xff0c;…

c++ 常用函数 集锦 整理中

c 常用函数集锦 目录 1、string和wstring之间转换 1、string和wstring之间转换 std::string convertWStringToString(std::wstring wstr) {std::string str;if (!wstr.empty()){std::wstring_convert<std::codecvt_utf8<wchar_t>> converter;str converter.to_b…

【论文阅读】ACM MM 2023 PatchBackdoor:不修改模型的深度神经网络后门攻击

文章目录 一.论文信息二.论文内容1.摘要2.引言3.作者贡献4.主要图表5.结论 一.论文信息 论文题目&#xff1a; PatchBackdoor: Backdoor Attack against Deep Neural Networks without Model Modification&#xff08;PatchBackdoor:不修改模型的深度神经网络后门攻击&#xf…

西井科技参与IATA全球货运大会 以AI绿动能引领智慧空港新未来

3月12日至14日&#xff0c;由国际航空运输协会IATA主办的全球货运大会&#xff08;World Cargo Symposium&#xff09;在中国香港成功举办&#xff0c;这是全球航空货运领域最大规模与影响力的年度盛会。作为大物流领域全球领先的“智能化与新能源化”综合解决方案提供商&#…

参加大广赛是否有价值?让我们来看答案!

大广赛全称是全国大学生广告艺术大赛&#xff0c;是中国最大的高校广告创意竞赛活动。它由教育部高等教育司指导&#xff0c;中国传媒大学、大广赛文化传播&#xff08;北京&#xff09;有限公司共同举办。 命题素材在线预览https://js.design/f/Jspbti?sourcesh&planbtt…

互联网操作系统Puter

什么是 Puter &#xff1f; Puter 是一个先进的开源桌面环境&#xff0c;运行在浏览器中&#xff0c;旨在具备丰富的功能、异常快速和高度可扩展性。它可以用于构建远程桌面环境&#xff0c;也可以作为云存储服务、远程服务器、Web 托管平台等的界面。Puter 是一个隐私至上的个…

垃圾清理软件大全免费 磁盘空间不足?注册表不敢乱动怎么办?ccleaner官方下载

在日常的工作中&#xff0c;面对重要文件时往往都会备份一份&#xff1b;在下载文件时&#xff0c;有时也会不小心把一份文件下载好多次。这些情况会导致电脑中出现重复的文件&#xff0c;删除这些重复文件&#xff0c;可以节省电脑空间&#xff0c;帮助提高电脑运行速度。那么…