力扣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];}
}

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

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

相关文章

SpringBoot注解事务失效列举总结

Spring事务注解 Transactional失效 常规写法不会有脏数据插入。 情景一、内部调用导致事务失效 数据库中出现测试回滚的脏数据 导致该问题原因为spring执行方法数据库操作的时候会生成一个动态代理类去执行代理类的该方法&#xff0c;代理类在执行updateUser时&#xff0c;执…

2024-3-11-C++作业

1>试编程 要求&#xff1a; 提示并输入一个字符串&#xff0c;统计该字符中大写、小写字母个数、数字个数、空格个数以及其他字符个数 源代码: #include <iostream>using namespace std;int main() {string s;cout << "请输入字符串&#xff1a;"…

CentOS 7 基于开源项目制作openssh 9.7p1二进制rpm包(内含ssh-copy-id、显示openssl版本信息)—— 筑梦之路

可参考之前的文章&#xff1a;CentOS 5/6/7 基于开源项目制作openssh 9.6p1 rpm包—— 筑梦之路_centos6 openssh9.6rpm-CSDN博客 2024年3月12日 植树节制作&#xff0c;相关文件见我的资源

力扣刷题日志-Day2 (力扣151、43、14)

151. 反转字符串中的单词 给你一个字符串 s &#xff0c;请你反转字符串中 单词 的顺序。 单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开 思路&#xff1a;根据题目大意&#xff0c;空格之间的就是一个单词&#xff0c;所以我们需要利用…

swagger踩坑之请求类不显示具体字段

swagger踩坑之请求类不显示具体字段 省流&#xff1a;枚举字段需要加上ApiModelProperty注解 过程复现&#xff1a; TestEnum 枚举不加注解&#xff0c;swagger的UI类不显示详细字段 Data Accessors(chain true) ApiModel(value "test对象", description &quo…

通过Office Web Viewer站点在线展示Office文档内容

方法&#xff1a; https://view.officeapps.live.com/op/view.aspx?src经Url编码的文档线上Url地址 比如&#xff1a; //以下地址来自一份旧项目代码&#xff0c;可见用的就是该方案function OfficeFileViewOnline(url, file_type, file_name) {url "http://14.23.112.2…

算法——哈希王

242.有效的字母异位词 力扣题目链接(opens new window) 给定两个字符串 s 和 t &#xff0c;编写一个函数来判断 t 是否是 s 的字母异位词。 示例 1: 输入: s "anagram", t "nagaram" 输出: true 示例 2: 输入: s "rat", t "car&qu…

配置vscode环境极简版(C/C++)(图文)

前言 众所周知&#xff0c;vscode是一个代码编辑器&#xff0c;不能直接编译运行我们敲的代码&#xff0c;必须提前配置好环境&#xff0c;而这也是劝退一众小白的一大重要因素&#xff0c;下面我想以一种提纲挈领的方式带大家走一遍从配置环境到运行实操代码的全过程。 安装…

Java项目:基于Springboot+vue实现的付费自习室系统设计与实现(源码+数据库+毕业论文)附含微信小程序端代码

一、项目简介 本项目是一套基于Springbootvue实现的付费自习室系统 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美观、操作简单、…

如何利用生成式人工智能完善会议纪要:捕捉会议要点的指南

在当今快节奏的商业环境中&#xff0c;有效的沟通和记录保存至关重要。有组织的会议纪要是这一过程的基石&#xff0c;它们作为会议讨论和决策的书面记录。但如何编写不仅有组织而且可以为出席者和未出席者提供可靠资源的会议纪要呢&#xff1f;让我们深入探讨一下会议纪要的艺…

算法-贪心-XMUOJ圣遗物的强化

题目 思路 贪心 - OI Wiki (oi-wiki.org) 贪心算法&#xff08;greedy algorithm&#xff0c;又称贪婪算法&#xff09;详解&#xff08;附例题&#xff09;-CSDN博客 代码 Python暴力排序 def min_mora_cost(n, levels):levels.sort() # 对圣遗物等级进行升序排序total_…

python数据类型 -- 元组Tuple

你好, 我是木木, 目前正在做两件事   1. 沉淀自己的专业知识   2. 探索了解各种副业项目&#xff0c;同时将探索过程进行分享&#xff0c;帮助自己以及更多朋友找到副业, 做好副业 文末有惊喜 在Python中&#xff0c;元组&#xff08;tuple&#xff09;是一种不可变序列类型&…

PostgreSQL 高可用安装部署

文章目录 一、概述1.PostgreSQL高可用2.Patroni 二、PostgreSQL高可用部署1.安装简介2.安装准备3.安装ETCD4.安装PostgreSQL5.安装Patroni6.安装haproxy7.安装keepalived8.测试 开源中间件 # PostgreSQLhttps://iothub.org.cn/docs/middleware/ https://iothub.org.cn/docs/mi…

Python基础快速入门

Python基础快速入门 前置知识 Python Python是一种广泛使用的高级编程语言&#xff0c;以其易于学习和使用的语法而闻名。以下是Python的一些主要特点&#xff1a; 高级语言&#xff1a;Python是一种高级语言&#xff0c;这意味着它提供了较高层次的抽象&#xff0c;使编程更…

排序算法的对比

类别排序方法时间复杂度空间复杂度稳定性平均情况最好的情况最坏的情况 插入 排序 插入排序稳定希尔排序不稳定 选择 排序 选择排序不稳定堆排序不稳定 交换 排序 冒泡排序稳定快速排序不稳定归并排序稳定基数排序稳定

记录一个编译的LLVM 含clang 和 PTX 来支持 HIPIFY 的构建配置

llvm 18 debug 版本 build llvmorg-18.1rc4 debug $ cd llvm-project $ git checkout llvmorg-18.1.0-rc4 $ mkdir build_d $ cd build_d $ mkdir -p ../../local_d cmake \ -DCMAKE_INSTALL_PREFIX../../local_d \ -DLLVM_SOURCE_DIR../llvm \ -DLLVM_ENABLE_PROJECTS&…

平台工程:构建企业数字化转型的基石

有人说&#xff0c;平台工程&#xff08;Platform Engineering&#xff09;&#xff0c;不过是新瓶装旧酒&#xff08;DevOps&#xff09;。 而Gartner 将平台工程列为 2024 顶级战略技术趋势之一。我国信通院也开始陆续制定与平台工程相关的技术标准。 随着数字化浪潮的席卷…

【数学】【网格】【状态压缩】782 变为棋盘

作者推荐 视频算法专题 本文涉及知识点 数学 网格 状态压缩 LeetCode:782 变为棋盘 一个 n x n 的二维网络 board 仅由 0 和 1 组成 。每次移动&#xff0c;你能任意交换两列或是两行的位置。 返回 将这个矩阵变为 “棋盘” 所需的最小移动次数 。如果不存在可行的变换&am…

day08_Mybatis

文章目录 前言一、快速入门1.1 入门程序分析1.2 入门程序实现1.2.1 准备工作1.2.1.1 创建springboot工程1.2.1.2 数据准备 1.2.2 配置Mybatis1.2.3 编写SQL语句1.2.4 单元测试1.3 解决SQL警告与提示 二、JDBC介绍2.1 介绍2.2 代码2.3 问题分析2.4 技术对比 三、数据库连接池3.1…

c语言经典测试题12

1.题1 float f[10]; // 假设这里有对f进行初始化的代码 for(int i 0; i < 10;) { if(f[i] 0) break; } 上述代码有那些缺陷&#xff08;&#xff09; A: for(int i 0; i < 10;)这一行写错了 B: f是float型数据直接做相等判断有风险 C: f[i]应该是f[i] D: 没有缺…