【每日刷题】Day96

【每日刷题】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.rhkb.cn/news/394409.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

栈和队列(数据结构)

1. 栈(Stack) 1.1 概念 栈 :一种特殊的线性表,其 只允许在固定的一端进行插入和删除元素操作 。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO ( Last In First Out )的原…

Pytorch-张量的创建

🌈个人主页: 羽晨同学 💫个人格言:“成为自己未来的主人~” 简介: 一个Python深度学习框架,它将数据封装成张量(Tensor)进行处理,Python中的张量就是元素为同一种数据类型的多维…

算法训练,项目

一.木材加工 题解: 二分答案,左边0,右边可以为最长的木头,但我直接赋值了一个很大的值,进行二分,随后写个check;内部遍历木头截取为mid木块的个数,要是>k,满足要求,还…

开源免费的海报设计器vue-fabric-editor

vue-fabric-editor 是一个基于 Vue.js 和 Fabric.js 的创新前端富文本编辑器,它将传统的文本输入体验与图形设计元素相结合,为用户提供了全新的内容创作方式。 以下是关于 vue-fabric-editor 的详细介绍: 一、技术特点 框架结合:…

快速掌握Vue:基础命令详解

1. Vue概述 Vue.js(读音 /vjuː/, 类似于 「view」) 是一套构建用户界面的 「渐进式框架」。与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计。Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库…

在Visual Studio/Qt Creator 中使用CMake安装和使用vcpkg包

文章目录 0. vcpkg简介和安装0.1 vcpkg简介0.2 vcpkg安装0.2.1 如何在Visual Studio 2022以及以上版本中安装vcpkg0.2.2 在其他VS版本或Qt Creator等平台上中安装vcpkg 1. 在Visual Studio 中使用CMake安装和使用vcpkg包1.1 创建Visual Studio项目1.2 设置项目文件a. 配置CMake…

FLUX.1 实测,堪比 Midjourney 的开源 AI 绘画模型,无需本地显卡,带你免费实战

要列举 AI 绘画开源界的几个关键贡献,一定少不了 Stable Diffusion。 还记否前不久刚推出的 Stable Diffusion 3? 其背后的团队 Stability AI,真的是一波三折,其核心成员出走,成立了一个新公司:Black For…

【Hot100】LeetCode—41. 缺失的第一个正数

原题链接:41. 缺失的第一个正数 1- 思路 手动实现哈希的方式 1- 遍历数组:如果当前的元素落在了 [1,N] 区间内,则 i 元素 赋值在 i-1 的位置上 比如对于数字 1 落在 数组 [0] 的位置 2- 判断条件 利用 while 加条件 ①当前元素落在了 [1,N]…

LVS(Linux virual server)

一:环境准备: rhel9 软件:httpd, ipvsadm 四台纯净的rhel9机子:一台LVS调度设备(双网卡),两台webserver(单网卡仅主机),一台客户机 DR模式多…

夏天猫毛满天飞?别怕一篇文章教你空气净化器怎么选

家里猫实在太多,3只短毛加上2只长毛,简直就是行走的蒲公英。夏天一到,猫咪的毛发便开始肆意飞舞,这对爱猫人士来说无疑是个烦恼。自从养猫以后,已经养成了每天都打扫卫生的习惯,吸尘器、扫地机必不可少&…

四种推荐算法——Embedding+MLP、WideDeep、DeepFM、NeuralCF

一、EmbeddingMLP模型 EmbeddingMLP 主要是由 Embedding 部分和 MLP 部分这两部分组成,使用 Embedding 层是为了将类别型特征转换成 Embedding 向量,MLP 部分是通过多层神经网络拟合优化目标。——用于广告推荐。 Feature层即输入特征层,是模…

【MySQL】全面剖析索引失效、回表查询与索引下推

1.索引失效的情况 以tb_user表举例,id为主键索引、name和phone字段上建立了一个普通索引,name和phone均为varchar类型。 索引列运算 当在 WHERE 子句或 JOIN 子句中对列使用函数或表达式时,索引会失效。 执行以下语句,可以发现执…

STM32-门电路-储存器-寄存器-STM32f1-MCU-GPIO-总线-keil5-点led

1、门电路 门电路组成简单加法器: 二进制对电路的影响: 0和1代表无和有; 以下图例,演示与门:左1右1输出1; 电平标准:使用不同的电压表示数字0和1; 高电平:1&#xff1…

AI在医学领域:残差扩散模型预测特发性肺纤维化 (IPF)

关键词: IPF 进展预测、残差扩散模型、临床信息 特发性肺纤维化(Idiopathic Pulmonary Fibrosis,IPF)是一种严重且不可逆的肺部疾病,它会导致肺部组织出现瘢痕和增厚,从而引起呼吸困难。。及时对IPF进行治…

电子围栏报警系统的创新应用

在科技日新月异的今天,安全防护技术正以前所未有的速度发展,其中,电子围栏报警系统作为智能安防领域的佼佼者,正逐步成为各行各业守护安全的主要选择方案。这一创新技术的应用,不仅极大地提升了安全防护的效率和精准度…

24/8/7 算法笔记 支持向量机回归问题天猫双十一

import numpy as np from sklearn.svm import SVR import matplotlib.pyplot as plt X np.linspace(0,2*np.pi,50).reshape(-1,1) y np.sin(X) plt.scatter(X,y) 建模 线性核函数 svr SVR(kernel linear) svr.fit(X,y.ravel())#变成一维y_ svr.predict(X) plt.scatter(…

阿里云播放器 web端 问题解决总结

1:ios设备长按视频,会出现系统的放大镜效果: 可以只监听touchstart事件即可 var playerContainer document.getElementById(this.playerId); playerContainer.addEventListener(touchstart, preventZoom, { passive: false }); playerConta…

unity 创建项目报错feature has expired (H0041),sentinel key not found (H0007)

两个报错同一种处理方式。 1、删除以下路径所有文件:C:\ProgramData\SafeNet Sentinel(注意:ProgramData为隐藏文件) 2、打开Cmd(WinR键,输入cmd回车),进入Unity安装所在盘符&#…

为啥https比http慢

Https有ssl的握手 HTTP没有 HTTPS TCP 和HTTP 的TCP 时间差不是很大 HTTPS请求中,ssl所占的时间比例是请求时间总和93.37%, HTTPS请求中,ssl的请求会是tcp请求的14倍,而HTTP中没有这个问题 建议:对安全要求不是很高的,不要使用https请求 图例

自定义DIY线上预约小程序源码系统 带完整的安装代码包以及搭建部署教程

系统概述 随着移动互联网的快速发展,人们越来越习惯于通过手机进行各种活动的预约。传统的预约方式往往存在着信息不透明、沟通不畅、效率低下等问题,无法满足用户日益增长的需求。同时,对于企业和商家来说,建立一个专属的线上预…