【问题标题】:Sum of N numbers represented by linked lists由链表表示的 N 个数字的总和
【发布时间】:2015-10-04 18:01:16
【问题描述】:

我们可以将链表表示的 2 个数字相加(如讨论的 here)使用 - 1.堆栈 2. 递归 现在我想将这种方法推广到“N”个链表。处理这个问题的最佳方法是什么?

【问题讨论】:

  • 在表示中,第一个数字是在栈顶还是栈底?
  • 定义最佳。内存占用?执行时间处理时间?易于编码或维护?这三者的加权组合?完全不同的东西 - 什么?
  • 所以 N 个并行的堆栈已经出局。一次添加两个 - 请参阅@aniketsiva 的答案。你还期待什么?
  • @laune 所以 N 个列表的泛化将简化为添加 2 个列表 n-1 次,除了这种明显的方法,我们还能想到什么。就像更新 N 个列表的递归方法一样。但是这种做法会增加很多检查。并且正如 aniket 还指出的那样,递归方法与“堆栈”方法没有什么不同,那么我们应该如何比较这些方法呢?
  • 递归表示栈在栈段中,否则为对象。并行运行多个递归只需要尽可能多的堆栈。除了对象的一些开销(每个递归级别 N 堆栈或数组 [N])之外,没有太大区别。

标签: java algorithm optimization linked-list sum


【解决方案1】:
  1. 使用 N 个堆栈将是一个很好的解决方案。
  2. 您也可以一次添加 2 个列表,然后执行 N-1 次以添加所有列表。
  3. 泛化递归方法以适用于 N 个列表。 这些是方法,但仍然无法告诉您其中最好的方法。

【讨论】:

  • @laune 因为递归方法类似于使用堆栈方法,因为在这两种情况下都维护堆栈,这就是为什么很难比较两者。
猜你喜欢
  • 2021-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多