9
從Matrix Chain Multiplication頁面在維基百科上,有這個片段的Java代碼:這是多維數組內存空間的冗餘分配嗎?
public void matrixChainOrder(int[] p) {
int n = p.length - 1;
m = new int[n][n];
s = new int[n][n];
for (int i = 0; i < n; i++) {
m[i] = new int[n];
m[i][i] = 0;
s[i] = new int[n];
}
...
是不是m = new int[n][n];
兩個其尺寸已經分配大小n
內存空間,因此這一步的循環m[i] = new int[n];
實際上是多餘的,因爲它所做的是重新分配第二個維度?
我已經從文章中刪除了多餘的代碼。 – chrylis 2015-03-19 05:30:57
'm [i] [i] = 0'也沒有什麼意義,因爲它只是對角線的零。 – CodesInChaos 2015-03-19 10:02:52
不,因爲整個數組初始化爲只包含零。 – Clashsoft 2017-07-19 16:42:55