【发布时间】:2020-04-09 01:01:03
【问题描述】:
我需要在堆栈中递归地找到最小值,然后返回最小值... 我尝试迭代解决它并且它有效。
我的递归尝试:
import java.util.Scanner;
public class Main {
public static int minimalValue(Stack<Integer> s, int min) {
if (s.isEmpty())
return min;
// Save the previous value.
int prev = s.pop();
if (!s.isEmpty() && prev < min)
min = prev;
return minimalValue(s, min);
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Stack<Integer> stack = new Stack<Integer>();
stack.push(99);
stack.push(64);
stack.push(73);
stack.push(54);
stack.push(100);
stack.push(82);
stack.push(55);
stack.push(300);
System.out.println(minimalValue(stack, stack.top()));
in.close();
}
}
如您所见,堆栈中的每个元素都在方法完成后被删除。 你能给我一个更好的解决方案吗?
【问题讨论】:
标签: java recursion data-structures stack min