您的位置:首页 > 财经 > 产业 > 1688批发网app下载安装_建筑设计图设计说明_seo引擎优化怎么做_推广运营是什么工作

1688批发网app下载安装_建筑设计图设计说明_seo引擎优化怎么做_推广运营是什么工作

2024/11/16 19:53:33 来源:https://blog.csdn.net/m0_74381802/article/details/143805893  浏览:    关键词:1688批发网app下载安装_建筑设计图设计说明_seo引擎优化怎么做_推广运营是什么工作
1688批发网app下载安装_建筑设计图设计说明_seo引擎优化怎么做_推广运营是什么工作

112.路径总和

给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返回 false 。

叶子节点 是指没有子节点的节点。

示例 1:

输入:root = [5,4,8,11,null,13,4,7,2,null,null,null,1], targetSum = 22
输出:true
解释:等于目标和的根节点到叶节点路径如上图所示。

思路详解:本题仍然使用递归方法求解,想要知道有没有值符合要求我们可以一直计算targetsum-root->val 最后到根节点如果等于0说明有符合要求的路径,否则没有。

代码详解:

class Solution {
public:bool hasPathSum(TreeNode* root, int targetSum) {if(root==nullptr)//如果根节点为空直接返回false{return false;}if(root->left==nullptr&&root->right==nullptr)//如果只有根节点那么判断以下根节点和目标值是否相同{return root->val==targetSum;}return hasPathSum(root->left,targetSum-root->val)||hasPathSum(root->right,targetSum-root->val);//顺次递归逐层判断是否有值能满足目标值减去当前值}
};

面经:

  1. 什么是c++中的常量表达式,有什么作用,如何判断是不是常量表达式

常量表达式是指在编译时就能确定其值的表达式。这样的表达式可以用于需要常量值的上下文中,例如数组的大小、枚举值、位域的大小以及非类型模板参数等。

下面是一些常量表达式

5            // 整数字面量
3.14         // 浮点数字面量
'a'          // 字符字面量
"Hello"      // 字符串字面量(注意:字符串字面量在C++中不是常量表达式,因为它是一个指针常量,指向字符数组)
true         // 布尔字面量
nullptr      // 空指针字面量
1 + 2        // 使用运算符的表达式,只要操作数都是常量表达式
enum {size = 10}; size // 枚举值

常量表达式有以下作用:

  • 定义数组的容量:在C++中,数组的容量必须是一个常量表达式。例如,int array[10]; 中的 10 就是一个常量表达式。
  • 指定枚举值:枚举类型的值可以在定义时使用常量表达式来初始化。
  • 模板的非类型参数:模板的非类型参数必须是一个常量表达式。例如,template<int N> class Array {...}; 中的 N 必须是一个常量表达式。
  • case语句中的标签:在switch语句中,case标签必须是一个常量表达式。
  • 位域的大小:在结构体或联合体中定义位域时,位域的大小必须是一个常量表达式。
  • 静态断言:C++11引入的静态断言 static_assert 的第二个参数必须是一个常量表达式。

判断一个表达式是否是常量表达式,可以遵循以下准则:

  • 字面量:所有的字面量(如数字、字符、字符串字面量)都是常量表达式。
  • 枚举常量:枚举类型的常量也是常量表达式。
  • const变量:如果 const 变量的值在编译时就能确定,并且它的类型是基本数据类型或枚举类型,那么它就是一个常量表达式。
  • 运算符:如果运算符的操作数都是常量表达式,那么该运算符的结果也是常量表达式。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com