java - 将两个多项式相乘(使用单链表)的一种更省时的方法?
问题描述
我有一个 Java 问题。我正在编写一种将两个多项式相乘的方法(存储为项的单链表)。我已经有了将一项乘以多项式并将两个多项式相加的方法。
在我当前的解决方案中,我创建了两个多项式对象,然后在 for-each 循环中,我使temp对象等于p1的深层克隆(之前,我只是将temp设置为等于p1,我现在意识到每次改变p1都会改变temp)。
然后,我将p2的当前项与 temp 相乘,并将生成的多项式添加到占位符对象multiplyPoly中。
目前,我认为这是在 O(n^3) 运行的。有没有办法可以更有效地做到这一点,也许不必创建p1的副本?
public static Polynomial multiply(Polynomial p1, Polynomial p2)
{
Polynomial multiplyPoly = new Polynomial();
Polynomial temp = new Polynomial();
for (Term y : p2.polynomial) {
temp.polynomial = p1.polynomial.deepClone();
temp.multiplyTerm(y);
multiplyPoly = Polynomial.add(multiplyPoly,temp);
}
return multiplyPoly;
}
解决方案
推荐阅读
- react-native - React-Native Jest PropType 测试
- java - 获取 JTextField 文本并在 JTextarea 上实时显示
- java - 如何从java中的firebase获取孩子的孩子的价值
- java - 错误:类中的构造函数不能应用于给定类型
- java - 我如何使用 Selenium 将以下兄弟元素计数放入变量中?
- javascript - AngularJS $http 不断在我的一个网址中添加斜杠
- reactjs - 在 React JS 中以状态将值数组附加到当前数组
- angular - 在 IE (Angular 5) 中打印 Blob 或 ArrayBuffer
- twilio - 如何在 twilio php 中执行拨号队列?
- c++ - 在 C++ 中读取 UTF-16 文件