329 矩陣中的最長遞增路徑 7月26日

2022-09-12 19:06:11 字數 1045 閱讀 8234

329. 矩陣中的最長遞增路徑

我的思路與官方題解法一大同小異。

深搜+記憶化

使用乙個同規格大小的memorymatrix矩陣儲存對應位置單元格作為起點的最大遞增路徑長度。

class

solution

}if(cor_x>0

) }

if(cor_y0].size()-1

) }

if(cor_y>0

) }

//當前層邏輯處理

memorymatrix[cor_x][cor_y] =length;

return

length;

//善後處理

}

int longestincreasingpath(vectorint>>&matrix)

}return

result;

}};/*

我的思路是深搜+記憶化

使用乙個同規格大小的memorymatrix矩陣儲存對應位置單元格作為起點的最大遞增路徑長度。

int search(int cor_x,int cor_y,vector>& matrix,vector>& memorymatrix)

}if(cor_x>0)

}if(cor_ymatrix[cor_x][cor_y])

}if(cor_y>0)

}//當前層邏輯處理

memorymatrix[cor_x][cor_y] = length;

//進一步遞迴

//善後處理

}*/

時間複雜度是mn

空間複雜度也是mn

一點改進:在搜尋臨近方格時可以預先儲存移動的向量(0,1),(0,-1),(1,0)等,**會更優雅。靜態常量變數可以在類中初始化

const與constexpr

329 矩陣中的最長遞增路徑

給定乙個整數矩陣,找出最長遞增路徑的長度。對於每個單元格,你可以往上,下,左,右四個方向移動。你不能在對角線方向上移動或移動到邊界外 即不允許環繞 示例 1 輸入 nums 9,9,4 6,6,8 2,1,1 輸出 4 解釋 最長遞增路徑為 1,2,6,9 示例 2 輸入 nums 3,4,5 3,...

329 矩陣中的最長遞增路徑

給定乙個整數矩陣,找出最長遞增路徑的長度。對於每個單元格,你可以往上,下,左,右四個方向移動。你不能在對角線方向上移動或移動到邊界外 即不允許環繞 示例 1 輸入 nums 9,9,4 6,6,8 2,1,1 輸出 4 解釋 最長遞增路徑為 1,2,6,9 dfs 記憶矩陣 儲存以該點位起點的最長路...

329 矩陣中的最長遞增路徑

題目 型別 深搜 記憶化遞迴 難度 困難 題意 從乙個二維矩陣中找到乙個嚴格遞增的路徑。使用深度搜尋,不需要標記,因為到當前點是需要滿足比原來點數值大的,所以也不會重複遍歷。然後使用記憶化遞迴記錄最長的路徑,如果已經計算過了直接返回。備註 2020.4.18位元組跳動三面面試題。面試官提示我使用回溯...