【发布时间】:2020-01-23 19:13:24
【问题描述】:
这是一个补充问题,与我最近提出的问题一致。我有以下递归代码,它将为我提供整数列表中的最大数字
static int maximum (List<Integer> a)
{
if ((a.getTail().isEmpty()))
return 0;
else {
int n = maximum(a.getTail());
System.out.println(n);
if (a.getHead() > n) {
return (a.getHead());
} else {
return m;
}}
}
这很有帮助。但我真正想做的是能够根据列表值增加或减少的位置返回布尔值真或假。所以我的方法会变成:
static boolean maximum (List<Integer> a)
{
if ((a.getTail().isEmpty()))
return true;
else {
int n = maximum(a.getTail());
System.out.println(n);
if (a.getHead() > n) {
return true;
} else {
return false;
}}
}
但这不会运行。我面临的挑战是我编写的递归调用返回一个整数,以便我可以将先前的最大值与当前的最大值进行比较----- if (a.getHead() > m)。
我想要做的是尝试并在递归调用中完成对当前诗句与先前最大值的评估,这样我只需要返回一个布尔值,真或假。
因此,例如,如果随着递归的发生,列表不断增加,那么布尔值保持为真,但如果在任何时候它减少,那么它将给出一个错误:
1,2,3,4 = 真
1,2,4,3 = 假
感谢您的帮助,我真的在递归的整个概念上苦苦挣扎.....
【问题讨论】:
-
当你只传入一个列表时,一个最大值函数如何返回一个布尔值?
-
对不起,我的问题不清楚,我会编辑它
-
所以你真的只想检查它是否已排序
-
是的 - 简单地说 - 谢谢