23-07-15

Wolfram Mathematica 13.0下载与安装教程,23.07.15安装 近期从网上搜罗到的关于Mathematica13的下载与安装的软件链接与方法。 阅读详情

剑指offer 32 - 1. 从上到下打印二叉树

思路

因为要层序遍历,所以就不好采用递归的方法来实现。所以借用queue来实现层序遍历。
首先将root节点放入queue中,然后当queue不为空时进行循环。其中首先记录queue的顶部的数值,然后放到ans中输出。然后判断当前头节点的左右子节点是否为空,如果不为空就放入queue中。直到queue成为一个空队列,说明遍历结束,输出ans数组。

代码

class Solution {
public:
    vector<int> levelOrder(TreeNode* root) {
        vector<int> ans;
        if(root == NULL){
            return ans;
        }
        queue<TreeNode*> que;
        que.push(root);
        while(!que.empty()){
            TreeNode* temp = que.front();
            ans.push_back(temp->val);
            if(temp->left) que.push(temp->left);
            if(temp->right) que.push(temp->right);
            que.pop();
        }
        return ans;
    }
};

剑指offer 32 - 2. 从上到下打印二叉树

思路

和上一题类似,需要层序遍历,但是改为每一层分别用一个vector来存储。
所以在判断queue是否为空之后,先获取当前queue中的节点个数,这个数量表示这一层需要添加左右子节点的节点数,然后根据这个size数量来进行循环,将每一层的vector都push到ans中。最后输出ans。

代码

class Solution {
public:
    vector<vector<int>> levelOrder(TreeNode* root) {
        vector<vector<int>> ans;
        if(root == NULL){
            return ans;
        }
        queue<TreeNode*> que;
        que.push(root);
        while(!que.empty()){
            vector<int> res;
            int size = que.size();
            while(size--){
                TreeNode* temp = que.front();
                res.push_back(temp->val);
                if(temp->left) que.push(temp->left);
                if(temp->right) que.push(temp->right);
                que.pop();
            }
            ans.push_back(res);
        }
        return ans;
    }
};

剑指offer 32 - 3. 从上到下打印二叉树

思路

一样是层序遍历,需要做的就是控制从左到右还是从右到左,这个通过一个flag来控制。
需要注意的是,每一行的val值不再通过vector来进行存储,因为vector只能push_back,这里采用deque双向队列来实现,deque能够实现push_back和push_front。
然后通过vector<int>把deque的类型进行强转,存入ans

代码

class Solution {
public:
    vector<vector<int>> levelOrder(TreeNode* root) {
        vector<vector<int>> ans;
        if(root == NULL){
            return ans;
        }
        queue<TreeNode*> que;
        que.push(root);
        bool flag = 1;
        while(!que.empty()){
            int size = que.size();
            deque<int> res;
            while(size--){
                TreeNode* temp = que.front();
                if(flag == 1){
                    res.push_back(temp->val);
                }
                else{
                    res.push_front(temp->val);
                }
                if(temp->left) que.push(temp->left);
                if(temp->right) que.push(temp->right);
                que.pop();
            }
            flag = !flag;
            ans.push_back(vector<int>(res.begin(),res.end()));
        }
        return ans;
    }
};
2021-07-23 习题5-7 使用函数求余弦函数的近似值 (15 分) 习题5-7 使用函数求余弦函数的近似值 (15 分) 本题要求实现一个函数,用下列公式求cos(x)的近似值,精确到最后一项的绝对值小于e: cos(x)=x​0​​ /0!−x​2/2!+x​4​​ /4!−x​6​​ /6!+⋯ 函数接口定义: double funcos( double e, double x ); 其中用户传入的参数为误差上限e和自变量x;函数funcos应返回用给定公式计算出来、并且满足误差要求的cos(x)的近似值。输入输出均在双精度范围内。 裁判测试程序样例: #includ 阅读详情

相关推荐

Crashlytics:Crashlytics与Firebase集成应用教程_2024-07-23_15-23-40.Tex

自定义日志记录是Crashlytics与Firebase集成后的一项强大功能,允许开发者在应用程序中记录关键事件和信息,这些信息可以用于调试、分析和优化应用性能。通过在代码中添加日志记录点,开发者可以追踪用户行为、应用状态和特定错误的发生情况,从而更深入地理解应用的运行状况。

1086

苏嵌学习日志15 07.23

学习日志                          姓名:刘易中        日期:2018/7/23 今日学习任务 介绍了STM32的基础知识,固件库以及用寄存器点亮一个灯。 今日任务完成情况 基本完成 今日开发中出现的问题汇总 固件库的构架和作用。 ...

Liuyz_的博客 196

Crashlytics:Crashlytics用户反馈系统搭建_2024-07-23_15-15-54.Tex

在集成Crashlytics到您的应用中后,您可能会发现默认的报告格式和信息不足以满足您的需求。自定义Crashlytics报告可以让您更精确地了解应用崩溃的原因,以及用户在崩溃发生时的使用环境。Crashlytics允许您在应用崩溃时添加自定义键值对,这些键值对可以是任何您认为有助于诊断问题的信息,例如用户ID、设备型号、网络状态等。除了系统自动捕获的异常,您还可以记录自定义异常,这在处理特定错误或警告时非常有用。Crashlytics允许您自定义反馈对话框的外观和行为,以匹配您的应用设计和品牌。

944

15-07-23 HTML--标签

超文本标记语言:HTML W3C:互联网联盟 注释语法:<!--注释掉的内容--> 标签格式:双标签元素:<标签名 属性 style="样式">内容</标签名> 单标签元素:<标签名 /> 或<标签名> 基本标签: (一) 自带标签 <html>网页开始 </html>网页结束 <head&g...

weixin_30682127的博客 74

Cinema 4D:运动图形与表达式完全指南_2024-07-15_23-17-23.Tex

Cinema 4D (C4D) 是一款由德国Maxon公司开发的3D建模、动画和渲染软件。其界面直观且功能强大,适合初学者和专业人士使用。

1172

Crashlytics:Crashlytics在iOS平台的应用_2024-07-23_15-56-08.Tex

在使用Crashlytics进行iOS应用的错误报告时,开发者可以自定义Crashlytics数据,以提供更详细的上下文信息,帮助分析和解决问题。这包括添加自定义键值对,记录应用状态或用户行为等。

1080

2021-07-23(剑指 Offer 15. 二进制中1的个数)

public class Solution { // you need to treat n as an unsigned value public int hammingWeight(int n) { int count=0; while(n!=0){ ++count; n=(n-1)&n; } return count; } } 位运算的小技巧太神奇了~ .

TickTick123的博客 110

Visual Studio Debugger:远程调试技术_2024-07-23_05-15-38.Tex

远程调试是一种技术,允许开发人员在与开发环境不同的计算机或设备上调试应用程序。

972

时间进行对比

<script> var a = new Date('2021-01-07 15:23:24'); var b = new Date('2021-01-07 15:23:23'); console.log(a > b); // true </script>

init_yanxiao的博客 148

ZBrush:ZBrush中的雕刻工具详解_2024-07-15_19-23-28.Tex

在ZBrush中,Dynamesh是一个革命性的功能,它允许艺术家在雕刻过程中动态地调整模型的拓扑结构。这意味着,无论你如何雕刻,模型的表面都会自动保持平滑,而不会出现折痕或拓扑问题。Dynamesh通过实时重新计算模型的多边形分布,确保在任何形状变化下都能保持最佳的细节和分辨率。

1661

Kotlin:Kotlin基础语法入门_2024-07-15_00-23-02.Tex

/ 定义一个简单的类// 属性// 方法name// 定义一个简单的类 class Person(val name : String , var age : Int) {// 属性 var height : Double = 0.0 // 方法 fun introduce() {

702

Crashlytics:Crashlytics自动化测试集成_2024-07-23_15-36-45.Tex

通过集成Espresso和XCTest,开发者可以有效地编写和运行自动化测试,确保Android和iOS应用的稳定性和功能正确性。这不仅提高了测试的效率,也减少了手动测试的错误和遗漏,是现代应用开发中不可或缺的一部分。在自动化测试中,Crashlytics 提供了强大的异常捕获和日志记录功能。自定义日志不仅可以帮助开发者更好地理解应用的运行状态,还能在测试失败时提供关键信息,加速问题定位。

1392

Steam:Steam游戏直播与观看技巧_2024-07-18_23-14-15.Tex

Steam, 作为全球最大的数字发行平台之一,不仅提供了丰富的游戏资源,还集成了直播功能,让玩家能够轻松地分享游戏过程,与社区互动。Steam直播功能允许用户直接从游戏内开始直播,无需额外的软件,简化了直播流程,增强了游戏体验的社交性。

1692

两种获取本机IP地址的方法--发布日期:2008-07-15 23:47

两种方法都是通过先得到主机名再获取IP地址:The gethostname function retrieves the standard host name for the local computer.int gethostname( char* name, int namelen);Parametersname [out] Pointer to a

ToCpp的专栏 2536

Crashlytics:Crashlytics性能监控入门_2024-07-23_15-05-29.Tex

在性能监控中,自定义性能指标允许开发者根据应用的具体需求,定义和跟踪特定的性能指标。这可以包括但不限于页面加载时间、API响应时间、动画帧率等。通过自定义性能指标,可以更精确地了解应用在不同场景下的表现,从而进行针对性的优化。假设我们有一个电商应用,其中商品详情页面的加载时间是一个关键的性能指标。我们可以使用Crashlytics的性能监控功能来自定义并跟踪这个指标。// 在商品详情页面加载开始时记录时间点.start();// 在商品详情页面加载完成时记录时间点.end();

990

Framer:Framer入门与基础操作_2024-07-22_15-09-23.Tex

Framer的界面设计围绕着画布、组件库和属性面板。在画布上,你可以放置和编辑各种组件,如按钮、文本框、图像等。组件库提供了预设的UI元素,而属性面板则允许你调整这些元素的外观和行为。在Framer中,自定义组件是构建复杂界面和实现代码复用的关键。通过创建自定义组件,你可以封装重复的UI元素和逻辑,使其在项目中可重用,同时保持代码的整洁和模块化。// 自定义按钮组件},});},events: {// 按钮点击事件});// 在页面中使用自定义按钮组件。

508

很久没有写了 2008-07-14 23:15(这是暑假的第一篇文章)

 很久没有写过属于自己的文章了。因为自己不会写。虽然一直都对语言这么学问深感兴趣的,但是没有专研,自己思想经常被禁锢着。自从高考后就没有好好写过属于自己的文章了。记得那时高考语文的成绩是425,估计作文是没有多少分了。在高中的时候,作文经常要用到什么修饰手法。现在也不会用了。上了大学,要写的文章有很多。但是经常是要到网上找例文,写出来的文章是别人的,因为引用别人的是多过我自己的。写了这么久,好

小王子的地盘 371

从‘静态拍照’到‘动态录像’:用Malmquist指数讲好你的效率变化故事(附Stata/R代码)

本文深入探讨了如何利用Malmquist指数构建动态效率分析框架,从静态数据到动态叙事的转变。通过分解技术效率变化(EC)和技术进步(TC),结合Stata/R代码实现四种动态可视化方法,帮助研究者更直观地展示效率变化的动态特征。文章还提供了诊断性叙事结构和比较叙事技巧,助力决策者理解效率提升的来源与趋势。

weixin_32678995的博客 603
上一篇: 记录-23.7.10
下一篇: 重刷剑指offer
lostcorner
博客等级 码龄9年 9粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值