329. 矩陣中的最長遞增路徑
我的思路與官方題解法一大同小異。
深搜+記憶化
使用乙個同規格大小的memorymatrix矩陣儲存對應位置單元格作為起點的最大遞增路徑長度。
class時間複雜度是mnsolution
}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
一點改進:在搜尋臨近方格時可以預先儲存移動的向量(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位元組跳動三面面試題。面試官提示我使用回溯...