gpt4 book ai didi

java - 递归地交换数组中的值

转载 作者:行者123 更新时间:2023-11-30 02:43:49 25 4
gpt4 key购买 nike

以下方法必须递归地交换整数数组中的所有值。我必须使用辅助方法 reverse() 。我怎样才能做到这一点?这个问题的基本情况是什么?我试着做start <= count , start == count/2 ,和start >= count但它们都没有起作用。start是要交换的值的索引,count是数组中元素的数量

    public void reverse()
{
reverseRecurse(list, 0, count);
}

private void reverseRecurse(int[] list, int start, int count)
{
if (start >= count/2)
{
int temp = list[start];
list[start] = list[count];
list[count] = temp;
}

else
{
reverseRecurse(list, ++start, --count);
}
}

最佳答案

试试这个:

public void reverse()
{
reverseRecurse(list, 0, count-1); // count - 1 is index of last element
}

private void reverseRecurse(int[] list, int start, int end)
{
if (start < end)
{
int temp = list[start];
list[start] = list[end];
list[end] = temp;
reverseRecurse(list, start + 1, end - 1);
}
}

通过索引更容易,因此我使用 startend

关于java - 递归地交换数组中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40832211/

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