【LeetCode】HOT 100(16)

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

题单介绍:

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

目录

题单介绍:

题目:124. 二叉树中的最大路径和 - 力扣(Leetcode)

题目的接口:

解题思路:

代码:

过过过过啦!!!!

题目:128. 最长连续序列 - 力扣(Leetcode)

题目的接口:

解题思路:

代码:

过过过过啦!!!!

写在最后:


题目:124. 二叉树中的最大路径和 - 力扣(Leetcode)

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

题目的接口:

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
 * };
 */
class Solution {
public:
    int maxPathSum(TreeNode* root) {

    }
};

解题思路:

这道题的思路并不算难,可以说不算是一道合格的困难题,

直接用搜索去做就行,

题目的核心思路是:

1. 寻找最大路径和

2. 根据题意,当我们走到一个节点上之后,最大的路径和是:左节点 + 当前节点 + 右节点 的和 

3. 左节点的值等于 左节点本身的值 + 他自己的左节点的值,右节点思路相同

4. 所以当前节点需要返回给上一个节点的值就是 自己本身的值 + max(左节点,右节点)

5. 当然,如果出现路径和<0的情况就可以置空重新计算了。

那么代码如下:

代码:

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
 * };
 */
class Solution {
public:
    //最大路径和
    int sumMax = INT_MIN; 
    int maxPathSum(TreeNode* root) {
        calSum(root);
        return sumMax;
    }
private:
    int calSum(TreeNode* root) {
        if(root == nullptr) return 0;

        //接收左右节点的最大值
        int left = max(calSum(root->left), 0);
        int right = max(calSum(root->right), 0);

        //计算当前的最大路径和
        int MaxSum = root->val + left + right;

        //更新最大路径和
        sumMax = max(sumMax, MaxSum);

        //返回的值是给前面的接收节点最大值接收的
        return root->val + max(left, right);
    }
};

过过过过啦!!!!

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

题目:128. 最长连续序列 - 力扣(Leetcode)

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

题目的接口:

class Solution {
public:
    int longestConsecutive(vector<int>& nums) {

    }
};

解题思路:

这道题我一开始在想直接sort

但是他要求要O(N),我又想要用哈希来做,

但是有点不知道咋用,

主要思路如下:

遍历整个哈希,如果遇到一个没有与上一个数联结的数,就求出序列长度并更新长度,

没有与上一个数联结的数:比如说:遍历到数字2,如果没有1,这个就是没有与上一个数联结的数

代码如下:

这里补充一点:

count这个接口,是如果找到这个数就返回1,否则返回0

代码:

class Solution {
public:
    int longestConsecutive(vector<int>& nums) {
        unordered_set<int> st;
        for(auto e : nums) st.insert(e);
        int ans = 0;
        for(auto k : st) {
            if(!st.count(k - 1)) {
                int y = k;
                while(st.count(y + 1)) y++;
                ans = max(ans, y - k + 1);
            }
        }
        return ans;
    }
};

过过过过啦!!!!

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

写在最后:

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

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

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

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

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

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

相关文章

  • 【LeetCode】HOT 100(1)

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

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

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

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

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

    2024年01月25日
    浏览(50)
  • 【LeetCode】HOT 100(15)

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

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

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

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

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

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

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

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

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

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

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

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

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

    2024年02月15日
    浏览(39)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包