当前位置: 首页 > news >正文

安全的小网站建设网站的企业费用

安全的小网站,建设网站的企业费用,企业信息公共服务平台,网站建设详细过程【每日刷题】Day96 🥕个人主页:开敲🍉 🔥所属专栏:每日刷题🍍 🌼文章目录🌼 1. LCP 44. 开幕式焰火 - 力扣(LeetCode) 2. 1022. 从根到叶的二进制数之和 - …

【每日刷题】Day96

🥕个人主页:开敲🍉

🔥所属专栏:每日刷题🍍

🌼文章目录🌼

1. LCP 44. 开幕式焰火 - 力扣(LeetCode)

2. 1022. 从根到叶的二进制数之和 - 力扣(LeetCode)

3. 563. 二叉树的坡度 - 力扣(LeetCode)

1. LCP 44. 开幕式焰火 - 力扣(LeetCode)

//思路:记数+递归。这个题目之前用C刷过,现在用C++复写一遍。

class Solution {

public:

    void _numColor(TreeNode* root,int* hash,int& ans)

    {

//遍历到空返回

        if(!root)

            return;

//如果当前焰火颜色没有被记录过,则焰火颜色种类+1

        if(!hash[root->val])

            ans++;

//将遍历到的每一个焰火颜色记录,防止重复

        hash[root->val]+=1;

        _numColor(root->left,hash,ans);

        _numColor(root->right,hash,ans);

    }

    int numColor(TreeNode* root)

    {

        int ans = 0;

        int hash[1001] = {0};

        _numColor(root,hash,ans);

        return ans;

    }

};

2. 1022. 从根到叶的二进制数之和 - 力扣(LeetCode)

//思路:递归+模拟栈。

//题目要求我们将树的每一条分支看作一个二进制数字,将所有分支的二进制数字的和返回。

//那么我们如何求得每一条分支的二进制数字呢?

//首先我们想到的是采用先序遍历的方法去遍历每一条分支,但是这里就有一个问题:我们如何区分不同分支代表的二进制数字呢?

//这里我们采用栈的数据结构来解决这个问题,我们画图理解:

//这里又会有一个问题,当我们遍历完当前分支后,如何将栈顶数据推出呢?

//其实非常简单,我们只需要利用形参的特性就行了,看下面的实现代码。

class Solution {

public:

//判断是否为叶子节点

    bool IsLeafNode(TreeNode* root)

    {

        return !root->left&&!root->right;

    }

//注意到,这里的count我用的是形参,因为每次递归都会创建一个新的函数栈帧以存储当前的递归函数,因此每一个count都是独一无二的,比如上一层的count是1,这一层的count是2,当我们当前函数结束返回时,会返回到上一层的函数使用上一层的count也就是1,利用这个特性我们就能很好的实现不断更新栈顶数据。

    void _sumRootToLeaf(TreeNode* root,int* Stack,int count,int& ans)

    {

//如果为空直接返回

        if(!root)

            return;

//不为空则将当前val入栈

        Stack[count] = root->val;

//如果为叶子节点则开始计算

        if(IsLeafNode(root))

        {

//次方

            int flag = 0;

//从栈顶往栈底计算

            for(int i = count;i>=0;i--)

            {

                ans+=pow(Stack[i]*2,flag);

//特殊处理0^0 = 1

                if(!Stack[i]&&!flag)

                    ans-=1;

                flag++;

            }

            return;

        }

//线序遍历

        _sumRootToLeaf(root->left,Stack,count+1,ans);

        _sumRootToLeaf(root->right,Stack,count+1,ans);

    }

    int sumRootToLeaf(TreeNode* root)

    {

        int Stack[1001] = {0};

        int ans = 0;

        _sumRootToLeaf(root,Stack,0,ans);

        return ans;

    }

};

3. 563. 二叉树的坡度 - 力扣(LeetCode)

//思路:先序遍历+求和返回。

class Solution {

public:

    int _findTilt(TreeNode* root,int& ans)

    {

//空节点坡度为0

        if(!root)

            return 0;

//计算左子树的和

        int ret1 = _findTilt(root->left,ans);

//计算右子树的和

        int ret2 = _findTilt(root->right,ans);

//求坡度并相加

        ans+=abs(ret1-ret2);

//返回左右子树的和+当前节点的val

        return ret1+ret2+root->val;

    }

    int findTilt(TreeNode* root)

    {

        int ans = 0;

        _findTilt(root,ans);

        return ans;

    }

};

http://www.yayakq.cn/news/761725/

相关文章:

  • 最好网站建设公司哪家好展览展示设计公司
  • 河北中尊建设工程有限公司官方网站seo多久可以学会
  • 南宁专业网站建设嵌入式软件开发的特点
  • 衡水冀县做网站婚庆公司价格
  • 做网站找哪家好关键词优化是怎样收费的
  • 网站连通率网站维护怎么学
  • 常州经开区建设局网站网站代码 如何做层级关系
  • 渭南网站建设远景网站友情链接代码
  • 惠州 商城网站建设网页设计期末作业代码
  • 菠菜网站怎么做推广比较好建网站的免费空间
  • 中石化网站群建设南京做网站找哪家好
  • 简单网页模板免费下载关键词seo排名公司
  • 企业网站快照更新一等一网站建设
  • 子商务网站建设的一般流程微信微网站开发价格
  • 网站制作成本包含网站建设前期规划方案
  • 绍兴做网站价格沧州公司网站建设
  • 潮州建设网站营销型网站的特点
  • 同一个阿里云可以做两个网站吗鹤壁企业网站建设
  • 做网站的公司 苏迪域名注册信息查询
  • 东莞建域名网站定制高端网站建设企业
  • 做外贸哪些网站可以发布产品房屋模拟装修软件
  • 服装网站建设目标客户湛江专门做网站
  • 在一呼百应上做网站行吗建网站带支付链接
  • 什么是网站外部链接建设衬衫定做公司
  • 临沂网站建设和轶件安装个人网站转为企业网站
  • 绵阳集团网站建设王也道长古风头像
  • 广州网站优化指导前端需要会wordpress
  • 客户网站留言公司内部 网站开发
  • 网站关停公告怎么做网站后台教程
  • 导购网站免费推广wordpress评论没有收到邮箱