Java 在多项式方程中组合相似项

Java 在多项式方程中组合相似项,java,c++,linked-list,poly,Java,C++,Linked List,Poly,不是家庭作业什么的,只是个人对编码的兴趣,现在自己学习。 我在网上发现这个问题很有趣 想一想如果我们有一张单子 1 2 2 4 3 6 4 2 5 4 等于1x^2+2^4+3^6+4^2+5^4 当数字具有相同的指数时,如何组合这些数字? 将变成5x^2+6x^4+3x^6 我想我们可以在这种情况下使用链表?但我真的不知道如何使用这种数据结构 或者其他解决这类问题的方法 喜欢C++或java 中的例子:你可以这样做: #include <iostream> #include &

不是家庭作业什么的,只是个人对编码的兴趣,现在自己学习。 我在网上发现这个问题很有趣

想一想如果我们有一张单子

1 2 2 4 3 6 4 2 5 4
等于1x^2+2^4+3^6+4^2+5^4 当数字具有相同的指数时,如何组合这些数字? 将变成
5x^2+6x^4+3x^6

我想我们可以在这种情况下使用链表?但我真的不知道如何使用这种数据结构

或者其他解决这类问题的方法


喜欢C++或java

中的例子:你可以这样做:

#include <iostream>
#include <vector>
#include <map>
 
int main()
{
    std::vector<int> nums{1, 2, 2, 4, 3, 6, 4, 2, 5, 4};
    std::map<int, int> exponent_occurences;
    for (unsigned int i = 1; i < nums.size(); i += 2)
        exponent_occurences[nums.at(i)] += nums.at(i - 1);
    for (auto& [exponent, coef]: exponent_occurences)
        std::cout << coef << "x^" << exponent << std::endl;
    return 0;
}
#包括
#包括
#包括
int main()
{
std::向量nums{1,2,2,4,3,6,4,2,5,4};
标准::地图指数\u出现;
for(无符号整数i=1;istd::cout最大指数大小是多少?如果不是太大,请使用数组,对于术语
a x^b
,请使用
total[b]用C++,一个<代码> STD::MAP< /Cord>也可以用同样的方法。你的主要偏好是:快速、低足迹、可维护或仅仅是功能性的?<代码> map < /C> >就足够了,并用<代码>计算< /Cord>替换<代码>放置>代码>操作,以处理添加到现有值。