什么是网络营销型网站,珠海网站建设制作哪家专业,南京专业网站制作公司,做电商网站用什么框架1.题目 2.知识点
注1#xff1a;在Java中#xff0c;数组的长度不是通过调用一个方法获得的#xff0c;而是通过一个属性直接获得的。因此#xff0c;正确的语法是nums.length而不是nums.length()。 所以应该使用int m nums.length;
注2#xff1a;return new int[]{i,…1.题目 2.知识点
注1在Java中数组的长度不是通过调用一个方法获得的而是通过一个属性直接获得的。因此正确的语法是nums.length而不是nums.length()。 所以应该使用int m nums.length;
注2return 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所以它不包含任何元素。这样的数组被称为“空数组”。
注4i 和 i 是递增操作符它们都用于增加变量的值但它们之间确实有区别。
i: 这是前缀递增操作符。它会先将变量增加 1然后返回增加后的值。换句话说i 会先执行递增操作然后返回递增后的值。
i: 这是后缀递增操作符。它会先返回变量的当前值然后再将变量增加 1。换句话说i 会先返回变量的值然后再执行递增操作。
int i 5;
int a i; // 先将 i 增加 1然后将增加后的值赋给 a此时 i 的值为 6a 的值也为 6。
int b i; // 先将 i 的值赋给 b然后再将 i 增加 1此时 b 的值为 6i 的值为 7。3.代码思路
1for (int i 0; i n - 1; i) {: 这是一个嵌套的 for 循环外部循环遍历数组 nums 的每个元素内部循环从外部循环当前元素的下一个元素开始遍历。
2for (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 mnums.length;for(int i0;im-1;i){for(int ji1;jm;j){if(nums[i]nums[j]target)return new int[]{i,j};}}return null;//还有一种写法是返回为空的整数数组return new int[0];}
}