为了账号安全,请及时绑定邮箱和手机立即绑定

'数字长度 - 1];' 是一个范围还是单个元素?

'数字长度 - 1];' 是一个范围还是单个元素?

米琪卡哇伊 2022-09-22 10:17:11
我读了这样一个旋转数组的解决方案问题:public class Solution {    public void rotate(int[] nums, int k) {        int temp, previous;        for (int i = 0; i < k; i++) {            previous = nums[nums.length - 1];            for (int j = 0; j < nums.length; j++) {                temp = nums[j];                nums[j] = previous;                previous = temp;            }        }    }}我很困惑,它是一个范围作为还是单个元素作为?previous = nums[num.lengh -1]nums[0:10]nums[0]
查看完整描述

4 回答

?
holdtom

TA贡献1805条经验 获得超10个赞

它是单个元素,他正在将元素放在位置上,并且内部的值正在与:交换,因为您有:num.length -1nums[j]j=0

temp = num[0];
num[0] = num[num.length-1]
num[num.length-1] = temp;

等等。


查看完整回答
反对 回复 2022-09-22
?
米脂

TA贡献1836条经验 获得超3个赞

它是单个元素,因为 是 一个,只是为您提供数组的最后一个可访问索引。num.lengh - 1int

如果检查数组的长度是否为 ,则可以安全地使用数组的长度来确定最后一个可访问的索引。> 0

数组的长度经常用于像你的循环这样的循环中:

此处的长度用于确保您不会访问不可用的索引:

for (int j = 0; j < nums.length; j++)

您可以在不更改功能的情况下编写稍微不同的条件

for (int j = 0; j <= nums.length - 1; j++)

但是,如果您执行以下操作,您将获得一个:IndexOutOfBoundsException

for (int j = 0; j <= nums.length; j++)

最后一次迭代将尝试访问数字[数字长度],这不存在...


查看完整回答
反对 回复 2022-09-22
?
临摹微笑

TA贡献1982条经验 获得超2个赞

nums[nums.length - 1];为您提供数组的最后一个位置。它是 -1,因为数组的位置以 0 开头,而不是以 1 开头。

如果不写 -1,则会出现越界异常。


查看完整回答
反对 回复 2022-09-22
?
大话西游666

TA贡献1817条经验 获得超14个赞

单身,这是由于你正在执行一个数学表达式,然后从中得到一个valeu。这意味着你取数组列表的长度,然后减去1,然后得到该值,换句话说,你得到最后一个值。

要获取所有值,您必须像 for 循环等一样循环。

for (i = 0; i < array.length; i++) {
 System.out.print(array[i]);
}


查看完整回答
反对 回复 2022-09-22
  • 4 回答
  • 0 关注
  • 96 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信