gpt4 book ai didi

java - 如何在递归中做一次性的事情?

转载 作者:行者123 更新时间:2023-12-02 04:49:02 27 4
gpt4 key购买 nike

我想递归地将一个元素插入到已经排序的数组中,并在移动时打印出所需的输出。到目前为止,这是我的代码:

static void recursivelyInsertElement(int[] array, int start, int elem) {
if (start == array.length) {
return;
}

if (array[start] > elem) {
System.out.print(elem + " ");
}

System.out.print(array[start] + " ");
recursivelyInsertElement(array, start + 1, elem);
}

这里的问题是,一旦它找到放置我想要插入的元素的位置,它就不会停止这样做,直到函数结束。我怎样才能让它只添加一次?

我想到的是添加一个额外的boolean函数参数,默认情况下为false。然后像这样创建第二个 if :

if (array[start] > elem && !isAdded) {
System.out.print(elem + " ");
isAdded = true;
}

这令人惊讶地有效,但非常丑陋。难道就没有其他方法可以做到这一点吗?

最佳答案

怎么样:

static void recursivelyInsertElement(int[] array, int start, int elem) {
if (start == array.length) {
return;
}

if (array[start] > elem) {
System.out.print(elem + " ");
printArrayAfterIndex(array,start);
}

System.out.print(array[start] + " ");
recursivelyInsertElement(array, start + 1, elem);
}

然后编写一个简单的函数。

关于java - 如何在递归中做一次性的事情?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29421737/

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