首页 > 其他分享 >实习冲刺第二十天

实习冲刺第二十天

时间:2024-11-15 19:19:51浏览次数:3  
标签:十天 root 冲刺 try catch int 二叉树 实习 异常

543.二叉树的直径

给你一棵二叉树的根节点,返回该树的 直径 。

二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。

两节点之间路径的 长度 由它们之间边数表示。

示例 1:

输入:root = [1,2,3,4,5]
输出:3
解释:3 ,取路径 [4,2,1,3] 或 [5,2,1,3] 的长度。

思路详解:这里我们不再采用上几期的方法对二叉树进行正序操作,这里我们先遍历到二叉树的叶子节点然后在递归回退的时候记录左子树和右子树的高度,将他们相加并逐次比较每次相加的值,直到取到最大值返回即可,

代码详解:

class Solution {
public:
    int deepth=0;//记录深度
    int diameterOfBinaryTree(TreeNode* root) {
       depth(root);
       return deepth;
    }
    int depth(TreeNode*root)
    {
        if(root==nullptr)
        {
            return 0;//如果根节点为空返回0
        }
        int left=depth(root->left);//走到左子树的最底端
        int right=depth(root->right);//走到右子树的最底端
        deepth=max(deepth,left+right);//求得左右子树相加的最大值
        return max(left,right)+1;//最后走过的路径需要+1
    }
};

面经:

  1. c++的异常处理机制是怎样的,什么情况下使用异常处理,优缺点是什么

C++的异常处理机制提供了一种处理程序运行中发生的错误或异常情况的方法。这种机制通过以下几个关键字来实现:try、catch、throw。

当程序可能出现错误,并且这种错误无法通过正常的流程处理时或当需要区分不同类型的错误,并且针对每种错误采取不同的处理措施时我们需要进行异常处理。

1. try 块:将可能抛出异常的代码放在 try 块中。如果在 try 块中的代码执行时发生异常,它会被抛出。

2. throw 表达式:当发生错误时,使用 throw 关键字来抛出一个异常。异常可以是任何类型的对象。

3. catch 子句:紧跟在 try 块后面的是一系列的 catch 子句,每个 catch 子句都是一个异常处理程序,用来处理特定类型的异常。

异常处理例子:

#include<iostream>
#include<vector>
using namespace std;
 
int main()
{
	vector<int> vec;
	try
	{
		vec.at(4);//数组越界操作
	}
		catch (exception& e)//所有异常的基类,这里是子类引用父类
	{
		cout << 2 << endl;
		cout << e.what() << endl;
	}
 
}

 当然我们也可以定义自己的异常

#include<iostream>
#include<vector>
#include<string>
using namespace std;
class MyExcetion
{
private:
	string msg;
public:
	MyExcetion(string str):msg(str){}
	MyExcetion(const MyExcetion& other)
	{
		this->msg = other.msg;
		cout << "拷贝构造" << endl;
	}
	void what()
	{
		cout << msg << endl;
	}
};
int fun(int a, int b)
{
	if (b == 0)
	{
		MyExcetion m("---异常,除数不能为0---");
		throw m;
	}
	return a / b;
}
 
int main()
{
	try
	{
		fun(1, 0);
	}
	catch (MyExcetion& e)
	{
		e.what();
	}
	cout << "虽有异常但未终止";
}
//运行结果:
//拷贝构造
//---异常,除数不能为0---
//虽有异常但未终止

优点:

异常传递:异常可以跨多个函数调用层次传递到能够处理它的地方。

类型安全:可以指定异常的类型,catch 块可以针对不同类型的异常提供不同的处理方式。

缺点:

性能开销:抛出和捕获异常可能会带来一定的性能损失,尤其是在性能要求很高的场合。

滥用可能导致代码混乱:如果过度使用异常处理,可能会导致代码逻辑不清晰,难以维护。

标签:十天,root,冲刺,try,catch,int,二叉树,实习,异常
From: https://blog.csdn.net/m0_74381802/article/details/143750968

相关文章

  • 团队项目Scrum冲刺-day5
    一、每天举行站立式会议站立式会议照片一张昨天已完成的工作成员任务陈国金判题机架构设计凌枫整合代码编辑器陈卓恒更新题目界面部分完成谭立业浏览题目页面部分完成廖俊龙接口测试曾平凡前端页面测试曾俊涛判题服务薛秋昊判题服务......
  • 第6篇 Scrum 冲刺博客
    作业要求这个作业属于哪个课程计科34班这个作业的要求在哪里团队作业4——项目冲刺这个作业的目标1.站立式会议2.发布项目燃尽图3.每人的代码/文档签入记录4.适当的项目程序/模块的最新(运行)截图5.每日每人总结会议照片昨日已完成的工作/今天计划完成的工作......
  • 第 5 篇 Scrum 冲刺博客
    团队作业4——第5篇Scrum冲刺博客作业要求这个作业属于哪个课程https://edu.cnblogs.com/campus/gdgy/CSGrade22-34这个作业要求在哪里https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/homework/13234这个作业的目标团队集体协作完成项目开发队名雄狮......
  • 团队项目4——项目冲刺-3
    每日站立式会议昨天已完成的工作:杨睿:前端框架页面开发木萨江:登录页开发巴音才次克:完成车辆信息的增删查改接口李佳聪:测试今天计划完成的工作:杨睿:社区通知模块接口社区活动模块接口木萨江:新增社区通知页面新增社区活动页面巴音才次克:完成车位信息......
  • 旺仔水饺-冲刺日志 Day3
    作业所属课程https://edu.cnblogs.com/campus/fzu/SE2024作业要求https://edu.cnblogs.com/campus/fzu/SE2024/homework/13305团队名称旺仔水饺102201140黎曼102201138黄俊瑶102201127罗永辉102201130郑哲浩102202144傅钰102202147赖越1722090......
  • 实习冲刺第二十一天
    14.最长公共前缀编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。示例1:输入:strs=["flower","flow","flight"]输出:"fl"示例2:输入:strs=["dog","racecar","car"]输出:""解释:输入不存在公共前缀......
  • 项目冲刺-2
    一、昨日已完成的任务学习有关springboot,vue等前后端知识,明确要开发的功能,初步搭好底层框架今日计划完成的任务建好数据库和底层框架,学习有关知识,尝试做功能接口。工作中遇到的困难成员的前后端基础较差,需要花大量时间入门,时间不够。剩余的时间不多,同时队员的沟通存在问题项......
  • Alpha冲刺(2/14)——2024.11.13
    目录一、团队成员分工与进度二、成员任务问题及处理方式三、冲刺会议内容记录会议内容四、GitHub签入记录及项目运行截图GitHub签入记录项目运行截图五、项目开发进展及燃尽图项目开发进展燃尽图六、团队成员贡献表一、团队成员分工与进度成员完成的任务完成的任务时长剩......
  • 研途无忧Alpha冲刺第二天
    Alpha冲刺dya2研途无忧-冲刺日志(第二天)进度表成员完成的任务完成的任务时长剩余时间马鑫小研帮部分页面的前端设计、部分工作安排与调整、冲刺日志的撰写4h14h王强小研帮部分页面的前端设计、小研帮数据库的完善、相关云函数的设计4h14h黄昕怡研小fu性......
  • 项目冲刺11.14
    这个作业属于哪个课程计科22级34班这个作业要求在哪里作业要求这个作业的目标进行为期七天的项目冲刺并记录前言本篇博客是项目冲刺的第六篇,七篇博客的汇总如下:博客汇总第一篇博客第二篇博客第三篇博客第四篇博客第五篇博客第六篇博客......