【问题标题】:Improving space complexity in matrix chain multiplication提高矩阵链乘法的空间复杂度
【发布时间】:2015-04-03 12:53:09
【问题描述】:

我想知道是否有任何方法可以将矩阵乘法问题的动态规划解决方案的空间复杂度从 O(N^2) 提高到更好的水平?

【问题讨论】:

标签: dynamic-programming matrix-multiplication space-complexity


【解决方案1】:

这是一个空间复杂度为 O(n) 的解决方案

#include <iostream>

using namespace std;

int min_cost(int a[], int n) {
    int* b = new int(n);

    b[1] = 0;
    b[2] = a[0]*a[1]*a[2];

    for (int j = 3; j < n; j++) {
        b[j] = min( b[j-1] + a[0]*a[j-1]*a[j], b[j-2] + a[j-1]*a[j-2]*a[j] + a[0]*a[j-2]*a[j]);
    }

    return b[n-1];
}

int main() {
    int arr[] = {10, 20, 30};
    int size = sizeof(arr)/sizeof(arr[0]);

    printf("Minimum number of multiplications is %d ", min_cost(arr, size));

   return 0;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-30
    • 2012-01-22
    • 1970-01-01
    • 1970-01-01
    • 2021-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多