【LeetCode】HOT 100(14)

这篇具有很好参考价值的文章主要介绍了【LeetCode】HOT 100(14)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

题单介绍:

精选 100 道力扣(LeetCode)上最热门的题目,适合初识算法与数据结构的新手和想要在短时间内高效提升的人,熟练掌握这 100 道题,你就已经具备了在代码世界通行的基本能力。

目录

题单介绍:

题目:85. 最大矩形 - 力扣(Leetcode)

题目的接口:

解题思路:

代码:

过过过过啦!!!!

题目:96. 不同的二叉搜索树 - 力扣(Leetcode)

题目的接口:

解题思路:

代码:

过过过过啦!!!!

写在最后:


题目:85. 最大矩形 - 力扣(Leetcode)

【LeetCode】HOT 100(14),LeetCode HOT 100,leetcode,算法,c++

题目的接口:

class Solution {
public:
    int maximalRectangle(vector<vector<char>>& matrix) {

    }
};

解题思路:

我不知道他们是怎么想出这道题的解法的,

是在是太强了,反正我是想不出来。

主要思路如下:

按行读取这个数组,

如果读到的格子的数是1,高度就+1,如果是0,高度就变成0,

每行读取按照这个规则,就能得到一个存放高度的数组,

把求高度的最大矩形面积的代码带入:(建议先学会这道题)

84. 柱状图中最大的矩形 - 力扣(Leetcode)

然后求出每更新一行的最大矩形即可

代码如下:

代码:

class Solution {
public:
    int maximalRectangle(vector<vector<char>>& matrix) {
        if(matrix.empty()) return 0;
        int ans = 0; 
        vector<int> line(matrix[0].size() + 2, 0);
        for(int i = 0; i < matrix.size(); i++) {
            for(int j = 0; j < matrix[0].size(); j++) {
                line[j + 1] = (matrix[i][j] == '0') ? 0 : line[j + 1] + 1;
            }
            ans = max(ans, largestRectangleArea(line));
        }
        return ans;
    }
private: //带入求最大矩形的代码
    int largestRectangleArea(vector<int>& heights) {
        vector<int> st;
        int ans = 0;
        for(int i = 0; i < heights.size(); i++) {
            while(!st.empty() && heights[st.back()] > heights[i]) {
                int high = st.back();
                st.pop_back();
                int left = st.back() + 1;
                int right = i - 1;
                ans = max(ans, (right - left + 1) * heights[high]);
            }
            st.push_back(i);
        }
        return ans;
    }
};

过过过过啦!!!!

【LeetCode】HOT 100(14),LeetCode HOT 100,leetcode,算法,c++

题目:96. 不同的二叉搜索树 - 力扣(Leetcode)

【LeetCode】HOT 100(14),LeetCode HOT 100,leetcode,算法,c++

题目的接口:

class Solution {
public:
    int numTrees(int n) {

    }
};

解题思路:

这道题我一开始是想着搜索然后计数来求的,

但是复杂的不允许,

只能用动态规划去做,

我画了图观察了规律,但是还是不太明白下面这个状态表达式是怎么求出来的,

dp[i] += dp[以j为头结点左子树节点数量] * dp[以j为头结点右子树节点数量]

我觉得我得系统的学习一下动态规划了,不然每次遇到动态规划就痛苦面具。

代码如下:

代码:

class Solution {
public:
    int numTrees(int n) {
        vector<int> dp(n + 1);
        dp[0] = 1;
        for(int i = 1; i <= n; i++) {
            for(int j = 1; j <= i; j++) {
                dp[i] += dp[j - 1] * dp[i - j]; 
            }
        }
        return dp[n];
    }
};

过过过过啦!!!!

【LeetCode】HOT 100(14),LeetCode HOT 100,leetcode,算法,c++

写在最后:

以上就是本篇文章的内容了,感谢你的阅读。

如果感到有所收获的话可以给博主点一个哦。

如果文章内容有遗漏或者错误的地方欢迎私信博主或者在评论区指出~文章来源地址https://www.toymoban.com/news/detail-563317.html

到了这里,关于【LeetCode】HOT 100(14)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【LeetCode】HOT 100(16)

    精选 100 道力扣(LeetCode)上最热门的题目,适合初识算法与数据结构的新手和想要在短时间内高效提升的人,熟练掌握这 100 道题,你就已经具备了在代码世界通行的基本能力。 目录 题单介绍: 题目:124. 二叉树中的最大路径和 - 力扣(Leetcode) 题目的接口: 解题思路:

    2024年02月12日
    浏览(27)
  • 【LeetCode】HOT 100(15)

    精选 100 道力扣(LeetCode)上最热门的题目,适合初识算法与数据结构的新手和想要在短时间内高效提升的人,熟练掌握这 100 道题,你就已经具备了在代码世界通行的基本能力。 目录 题单介绍: 题目:98. 验证二叉搜索树 - 力扣(Leetcode) 题目的接口: 解题思路: 代码:

    2024年02月11日
    浏览(54)
  • 【LeetCode】HOT 100(1)

    精选 100 道力扣(LeetCode)上最热门的题目,适合初识算法与数据结构的新手和想要在短时间内高效提升的人,熟练掌握这 100 道题,你就已经具备了在代码世界通行的基本能力。 目录 题单介绍: 题目:2. 两数相加 - 力扣(Leetcode) 题目的接口: 解题思路: 代码: 过过过过

    2024年02月08日
    浏览(27)
  • 【LeetCode】HOT 100(22)

    精选 100 道力扣(LeetCode)上最热门的题目,适合初识算法与数据结构的新手和想要在短时间内高效提升的人,熟练掌握这 100 道题,你就已经具备了在代码世界通行的基本能力。 目录 题单介绍: 题目:538. 把二叉搜索树转换为累加树 - 力扣(Leetcode) 题目的接口: 解题思路

    2024年02月13日
    浏览(30)
  • 【LeetCode】HOT 100(11)

    精选 100 道力扣(LeetCode)上最热门的题目,适合初识算法与数据结构的新手和想要在短时间内高效提升的人,熟练掌握这 100 道题,你就已经具备了在代码世界通行的基本能力。 目录 题单介绍: 题目:64. 最小路径和 - 力扣(Leetcode) 题目的接口: 解题思路: 代码: 过过过

    2024年02月15日
    浏览(32)
  • 【LeetCode】HOT 100(12)

    精选 100 道力扣(LeetCode)上最热门的题目,适合初识算法与数据结构的新手和想要在短时间内高效提升的人,熟练掌握这 100 道题,你就已经具备了在代码世界通行的基本能力。 目录 题单介绍: 题目:75. 颜色分类 - 力扣(Leetcode) 题目的接口: 解题思路: 代码: 过过过过

    2024年02月09日
    浏览(43)
  • 【LeetCode】HOT 100(26)

    精选 100 道力扣(LeetCode)上最热门的题目,适合初识算法与数据结构的新手和想要在短时间内高效提升的人,熟练掌握这 100 道题,你就已经具备了在代码世界通行的基本能力。 目录 题单介绍: 题目:394. 字符串解码 - 力扣(Leetcode) 题目的接口: 解题思路: 代码: 过过

    2024年02月15日
    浏览(30)
  • 【LeetCode】HOT 100(23)

    精选 100 道力扣(LeetCode)上最热门的题目,适合初识算法与数据结构的新手和想要在短时间内高效提升的人,熟练掌握这 100 道题,你就已经具备了在代码世界通行的基本能力。 目录 题单介绍: 题目:448. 找到所有数组中消失的数字 - 力扣(Leetcode) 题目的接口: 解题思路

    2024年02月12日
    浏览(46)
  • 【LeetCode】HOT 100(21)

    精选 100 道力扣(LeetCode)上最热门的题目,适合初识算法与数据结构的新手和想要在短时间内高效提升的人,熟练掌握这 100 道题,你就已经具备了在代码世界通行的基本能力。 目录 题单介绍: 题目:560. 和为 K 的子数组 - 力扣(Leetcode) 题目的接口: 解题思路: 代码:

    2024年02月12日
    浏览(32)
  • leetcode hot 100

    二叉树的遍历不仅可以用递归来做,也可以用迭代来做。二叉树的递归底层是采用栈来进行的,所以我们迭代就要采用栈来做。 我们知道,栈的原则是先进后出,以前序为例,顺序是中左右,那么,以根节点开始,如果不为空,我们先把根节点压入栈,然后弹出,然后再把右

    2024年01月25日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包