【导读】本仓库包含LeetCode前710题的C++11和Python3 的题解与解释。
Github地址:
https://github.com/pezy/LeetCode
本仓库不仅包含题解,还有详细的解题思路,如:
084 题 最大的矩阵
以及代码:
#using std::vector;#using std::stack;#using std::max; using std::min;class Solution {public:int largestRectangleArea(vector<int> &height) {int max_area = 0, i = 0, size = height.size();for (stack<int> stk; i<size || !stk.empty(); )if (stk.empty() || (i != size && height[stk.top()] <= height[i])) stk.push(i++);else {int tp = stk.top(); stk.pop();max_area = max(max_area, height[tp] * (stk.empty() ? i : i-stk.top()-1));}return max_area;}int maximalRectangle(vector<vector<char> > &matrix) {if (matrix.empty()) return 0;int max_area = 0;vector<int> height(matrix[0].size(), 0);for (size_t i=0; i<matrix.size(); ++i) {for (size_t j=0; j<matrix[0].size(); ++j)if (matrix[i][j] == '0') height[j] = 0;else ++height[j];max_area = max(max_area, largestRectangleArea(height));}return max_area;}};
# CATCH_CONFIG_MAIN##TEST_CASE("Maximal Rectangle", "[maximalRectangle]"){Solution s;SECTION( "common1" ){std::vector<std::vector<char>> matrix = {{'0', '1', '0', '0'},{'1', '1', '1', '0'},{'0', '1', '1', '0'},{'0', '0', '1', '0'},{'0', '1', '0', '0'}};REQUIRE( s.maximalRectangle(matrix) == 4 );}SECTION( "common2" ){std::vector<std::vector<char>> matrix = {{'1', '1', '1', '1'},{'1', '0', '0', '1'},{'1', '1', '1', '1'},{'0', '0', '1', '0'},{'0', '1', '1', '1'}};REQUIRE( s.maximalRectangle(matrix) == 4 );}SECTION( "common3" ){std::vector<std::vector<char>> matrix = {{'1', '1', '1', '1', '1'},{'1', '1', '1', '0', '1'},{'1', '1', '1', '0', '0'},{'1', '0', '0', '0', '0'},{'1', '0', '0', '0', '0'}};REQUIRE( s.maximalRectangle(matrix) == 9 );}SECTION( "common4" ){std::vector<std::vector<char>> matrix = {{'0', '1', '0', '1', '0'},{'1', '1', '1', '1', '1'},{'0', '1', '1', '1', '0'},{'0', '1', '1', '1', '0'},{'1', '1', '1', '1', '1'},{'1', '1', '1', '1', '0'},{'0', '1', '0', '1', '0'},{'0', '0', '0', '0', '0'}};REQUIRE( s.maximalRectangle(matrix) == 15 );}
-END-
专 · 知
专知,专业可信的人工智能知识分发,让认知协作更快更好!欢迎登录www.zhuanzhi.ai,注册登录专知,获取更多AI知识资料!
欢迎微信扫一扫加入专知人工智能知识星球群,获取最新AI专业干货知识教程视频资料和与专家交流咨询!
请加专知小助手微信(扫一扫如下二维码添加),加入专知人工智能主题群,咨询技术商务合作~
专知《深度学习:算法到实战》课程全部完成!530+位同学在学习,现在报名,限时优惠!网易云课堂人工智能畅销榜首位!
点击“阅读原文”,了解报名专知《深度学习:算法到实战》课程