gpt4 book ai didi

java - 复制数组的后半部分

转载 作者:行者123 更新时间:2023-11-30 01:45:11 26 4
gpt4 key购买 nike

我想创建一个以数组和 boolean 值作为参数的函数。 boolean 值告诉函数是否要包含数组除法的其余部分。然后它返回一个新数组,它是第一个数组后半部分的副本:

secondHalf({1, 2, 3, 4, 5}, true) → {3, 4, 5}
secondHalf({1, 2, 3, 4, 5}, false) → {4, 5}

对于这个作业,我不应该使用任何其他类。这是我尝试过的:

static int[] secondHalf(int[] vector, boolean include) {
int size = vector.length/2;
if(vector.length%2 == 0)
include = false;
if(include)
size ++;
int[] vector_2 = new int[size];
int i = 0;
while(i < size){
if(include)
vector_2[i] = vector[i+size-1];
vector_2[i] = vector[i+size+1];
i++;
}
return vector_2;

最佳答案

为了查找 vector_2 的大小,我决定使用复合赋值运算符。因此,该解决方案的第一部分检查所需的条件,并在单个语句中为 size 分配一个值。

由于我们知道要迭代循环多少次,因此我认为 for 循环比 while 循环更合适。

该循环检索 vector 中从数组中间到数组末尾的所有值,并将每个值放入 vector_2 中。

static int[] secondHalf(int[] vector, boolean include) {
int size = vector.length/2 + (include && vector.length%2 != 0 ? 1 : 0);
int[] vector_2 = new int[size];

for(int i = 0; i < size; i++)
vector_2[i] = vector[vector.length - size + i];

return vector_2;
}

关于java - 复制数组的后半部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58332409/

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