gpt4 book ai didi

java - 编写返回数组后半部分的方法 secondaryHalf。不能使用快捷方式,只能使用for循环

转载 作者:行者123 更新时间:2023-12-02 10:24:38 24 4
gpt4 key购买 nike

Complete the method secondHalf that returns an array that is the second half of list. If the length of list is odd, second half return the smaller half of the list.

我正在为自己做一个我犯了错误的测验的更正。示例输出如下:

1,2,3,4 --> 3,4
1,2,3,4,5-->4,5

我为这个方法写的内容(根据我的老师的说法有一半是错误的)是:

public int [] secondHalf(int[]list)
{
int []a = new int [list.length/2];
for(int i =0;i<list.length;i++)
{
a[i]=list[list.length/2+i];
}

return a;

}

最佳答案

您的方法迭代整个 Array通过然后复制list[list.length/2+k];元素转移到新的Array 。 (我假设 k 在这里应该是 i。)

这不仅会导致 indexOutOfBoundsError ,这将返回 ArrayArray 大小相同你可以通过循环直到 a.length 来解决这个问题。 ( for(int i =0;i<a.length;i++) ),但这仅适用于 Array大小均匀。

您可以使用内置方法 Arrays.copyOfRange() :

public int[] secondHalf(int[] arr) {
return Arrays.copyOfRange(arr, (arr.length+1)/2, arr.length);
}

或者仅使用循环:

public int[] secondHalf(int[] arr) { 
int[] newArr = new int[arr.length/2];
for(int i = (arr.length+1)/2, j = 0; i < arr.length; i++){
newArr[j++] = arr[i];
}
return newArr;
}

示例输入和输出:

Input: [1, 2, 3, 4]
Output: [3, 4]

Input: [1, 2, 3, 4, 5]
Output: [4, 5]

关于java - 编写返回数组后半部分的方法 secondaryHalf。不能使用快捷方式,只能使用for循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54067210/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com