代码随想录算法训练营第十七天| 110.平衡二叉树 257. 二叉树的所有路径 404.左叶子之和

RH850从0搭建Autosar开发环境系列讲解 - 总目录 Davinci Autosar实战开发从0构建开发能力。OS,COM,DCM,BSWMM,ECUM,VLINK,XCP,MEMMAP等模块配置,带你熟悉运行的autosar代码,包括MICROSAR的启动运行,使用GreenHills生成运行的hex。 阅读详情

今天搞得比较晚,明天会补上剩下的题2月17日

110.平衡二叉树 (优先掌握递归)

题目链接

给定一个二叉树,判断它是否是高度平衡的二叉树。
本题中,一棵高度平衡二叉树定义为:
一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。

在这里插入图片描述

思路:(递归法)
首先要知道什么是平衡二叉树,一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1,那么判断的时候肯定是判断到该节点左右两个节点的高度,然后不超过1那么才能继续下去,否则返回 -1 。这里的-1类似一个标志位,保证每一步的判断。

其次还是要明确什么是二叉树的高度,什么是二叉树的深度:
二叉树节点的深度:指从根节点到该节点的最长简单路径边的条数。
二叉树节点的高度:指从该节点到叶子节点的最长简单路径边的条数。
在这里插入图片描述
递归三部曲:
1、确定递归函数的参数和返回值

int getHeight(TreeNode* node)

2、确定函数的终止条件
在递归过程中,当节点遇到空时,返回0,代表当前节点为根节点的树高度为0.

if (node == nullptr) return 0;

3、确定递归的单层逻辑
如何判断以当前传入节点为根节点的二叉树是否是平衡二叉树呢?当然是其左子树高度和其右子树高度的差值。

分别求出其左右子树的高度,然后如果差值小于等于1,则返回当前二叉树的高度,否则返回-1,表示已经不是二叉平衡树了。

int leftHeight = getHeight(node->left); // 左
if (leftHeight == -1) return -1;
int rightHeight = getHeight(node->right); // 右
if (rightHeight == -1) return -1;

int result;
if (abs(leftHeight - rightHeight) > 1) {  // 中
    result = -1;
} else {
    result = 1 + max(leftHeight, rightHeight); // 以当前节点为根节点的树的最大高度
}

return result;

整体代码如下:

class Solution {
public:
    //递归法第一步,确定函数参数和返回值
    int getHeight(TreeNode* node) {
        if (node == nullptr) return 0;
        int leftHeight = getHeight(node->left);
        if (leftHeight == -1) return -1;

        int rightHeight = getHeight(node->right);
        if (rightHeight == -1) return -1;

        int result;
        if (abs(leftHeight - rightHeight) > 1) return -1;
        else {
            result = 1 + max(leftHeight, rightHeight);
        }
        return result;
    }
    bool isBalanced(TreeNode* root) {
        return getHeight(root) == -1 ? false : true;
    }
};

总结:本题还是要先理解什么是高度什么是深度,各种基础的定义要搞明白,写的时候才容易理解。

257. 二叉树的所有路径(递归回溯的过程)

题目链接

给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。
叶子节点 是指没有子节点的节点。

在这里插入图片描述
思路:
首先要知道回溯的过程,要把路径记录下来,需要回溯来回退一个路径再进入另一个路径。
在这里插入图片描述
递归三部曲
1、确定递归函数参数和返回值
要传入根节点,记录每一条路径的path,和存放结果集的result,这里递归不需要返回值

void travel(TreeNode* cur, vector<int>& path, vector<string>& result)

2、确定终止条件
本题要找到叶子节点,就开始结束的处理逻辑了(把路径放进result里),当 cur不为空,其左右孩子都为空的时候,就找到叶子节点。
这里使用vector 结构path来记录路径,所以要把vector 结构的path转为string格式,再把这个string 放进 result里

if (cur->left == nullptr && cur->right == nullptr) {
	//result.push_back(path)
	string sPath;
    for (int i = 0; i < path.size() - 1; i++) { // 将path里记录的路径转为string格式
        sPath += to_string(path[i]);
        sPath += "->";
    }
    //因为最后一个节点后面不需要 “->” 所以单独添加
    sPath += to_string(path[path.size() - 1]); // 记录最后一个节点(叶子节点)
    result.push_back(sPath); // 收集一个路径
    return;
}

3、确定递归函数的逻辑
因为是前序遍历,需要先处理中间节点,中间节点就是我们要记录路径上的节点,先放进path中。path.push_back(cur->val);

然后是递归和回溯的过程,上面说过没有判断cur是否为空,那么在这里递归的时候,如果为空就不进行下一层递归了。
所以递归前要加上判断语句,下面要递归的节点是否为空,如下

回溯和递归是一一对应的,有一个递归,就要有一个回溯

if (cur->left) {
    travel(cur->left, path, result);
    path.pop_back();
}
if (cur->right) {
    travel(cur->right, path, result);
    path.pop_back();
}

整体代码如下:

class Solution {
private:

    void traversal(TreeNode* cur, vector<int>& path, vector<string>& result) {
        path.push_back(cur->val); // 中,中为什么写在这里,因为最后一个节点也要加入到path中 
        // 这才到了叶子节点
        if (cur->left == NULL && cur->right == NULL) {
            string sPath;
            for (int i = 0; i < path.size() - 1; i++) {
                sPath += to_string(path[i]);
                sPath += "->";
            }
            sPath += to_string(path[path.size() - 1]);
            result.push_back(sPath);
            return;
        }
        if (cur->left) { // 左 
            traversal(cur->left, path, result);
            path.pop_back(); // 回溯
        }
        if (cur->right) { // 右
            traversal(cur->right, path, result);
            path.pop_back(); // 回溯
        }
    }

public:
    vector<string> binaryTreePaths(TreeNode* root) {
        vector<string> result;
        vector<int> path;
        if (root == NULL) return result;
        traversal(root, path, result);
        return result;
    }
};

精简代码:

class Solution {
public:
    void travel(TreeNode* cur, string path, vector<string>& result) {
        path += to_string(cur->val);
        if (cur->left == nullptr && cur->right == nullptr) {
            result.push_back(path);
            return;
        }

        if (cur->left) {
            travel(cur->left, path + "->", result);
        }
        if (cur->right) {
            travel(cur->right, path + "->", result);
        }
    }
    vector<string> binaryTreePaths(TreeNode* root) {
        vector<string> result;
        string path;
        if (root == NULL) return result;
        travel(root, path, result);
        return result;
    }
};

总结:
递归和回溯常常一起出现,有递归就右回溯,如果对精简使用不理解,还是先理解第一版,实现之后再考虑精简。

404.左叶子之和

给定二叉树的根节点 root ,返回所有左叶子之和。
在这里插入图片描述
思路:递归法
1、首先要注意是判断左叶子,不是二叉树左侧节点,所以不要上来想着层序遍历。

2、左叶子的明确定义:节点A的左孩子不为空,且左孩子的左右孩子都为空(说明是叶子节点),那么A节点的左孩子为左叶子节点

3、判断当前节点是不是左叶子是无法判断的,必须要通过节点的父节点来判断其左孩子是不是左叶子。

注意以上三点后,使用递归三部曲解决问题:

class Solution {
public:
    //确定递归函数的参数和返回值,返回值就是左叶子之和,参数就是节点,所以使用给定的函数即可
    int sumOfLeftLeaves(TreeNode* root) {
        //2、确定终止条件
        if (root == nullptr) return 0;

        // 这一步是判断出来了叶子节点是左叶子,但是需要的是他的源节点来判断是否返回值
        //其实这个也可以不写,如果不写不影响结果,但就会让递归多进行了一层。
        if (root->left == nullptr && root->right == nullptr) return 0;

        // 3、确定单层递归逻辑
        int leftValue = sumOfLeftLeaves(root->left);
        if (root->left != nullptr && root->left->left == nullptr && root->left->right == nullptr) {
            leftValue = root->left->val;
        }

        int rightValue = sumOfLeftLeaves(root->right);

        int sum = leftValue + rightValue;
        return sum;

    }
};

精简版代码:

class Solution {
public:
    int sumOfLeftLeaves(TreeNode* root) {
        if (root == nullptr) return 0;
        int leftValue = 0;
        if (root->left && !root->left->left && !root->left->right) {
            leftValue = root->left->val;
        }
        return leftValue + sumOfLeftLeaves(root->left) + sumOfLeftLeaves(root->right);
    }
};

总结:递归法很好用,对于题目中的很多条件还需要深挖才行。掌握思路中提到的点。

某AI推荐系统项目管理复盘:架构师总结的6大方法论与调优策略 我是张三,某大厂资深AI架构师,主导过5个千万级用户的推荐系统项目(覆盖电商、内容、视频、音乐、外卖等场景)。我的公众号“AI架构师笔记”会分享更多AI项目管理和技术实战经验,欢迎关注。最后的话:推荐系统不是“一锤子买卖”,而是“持续优化的过程”。希望这篇文章能帮你少踩坑,多做对——毕竟,把复杂的事做成,才是架构师的核心能力。 阅读详情

相关推荐

Kettle 连接 Oracle 数据库全流程指南

例如:C:\Oracle\product\19.0.0\dbhome_1\jdbc\lib\ojdbc8.jar 2. 替换 Kettle 驱动文件 将驱动文件复制到 Kettle 的 目录: 删除旧版本驱动:如 ojdbc14.jar 只能保留一个oracle驱动 重启 Kettle 以加载新驱动 二、配置数据库连接 1. 启动 Kettle 并新建转换 运行 (Windows)或 (Linux)。 新建转换(Transformation),添加 “表输入” 步骤,双击进入配置。 2.

qq_44724453的博客 3481

代码随想录算法训练营第十七天|Leetcode110 平衡二叉树、Leetcode257 二叉树的所有路径、Leetcode404 左叶子之和

在之前的文章中已经讨论过对于高度和深度使用哪种遍历方式最优,因为我们需要将子树的平衡结果返回给上一结点,所以我们必然需要先遍历左右结点随后中结点才能达到目的,因此我们在单层递归中使用。因为我们需要将左右子树的左叶子之和返回给其父结点,因此需要先对左右遍历,然后在处理中时将左右子树的左叶子结点加和返回给自身即可,因此其单层遍历逻辑使用。如果我们遍历到叶子结点的时候,我们无法将叶子结点的值返回给其父结点,因此我们只需要遍历到其父结点,通过。输入:root = [1,2,2,3,3,null,null,4,4]

Demok123的博客 1815

Python实战:5分钟搞定N-CMAPSS航空发动机数据集解析(附完整代码)

本文提供了一份针对N-CMAPSS航空发动机数据集的快速解析实战指南。通过Python的h5py库,详细演示了如何读取HDF5文件结构、理解数据分类(如传感器、健康参数、场景描述符)并加载为Pandas DataFrame。文章还澄清了数据集中常见的变量数量疑惑,并给出了从数据加载到构建剩余使用寿命预测模型预处理流水线的完整代码,帮助工程师和研究人员高效入门航空发动机预测性维护分析。

weixin_29057065的博客 422

代码随想录算法训练营第十七天 | 110.平衡二叉树,257. 二叉树的所有路径,404.左叶子之和 [二叉树篇]

二叉树、平衡二叉树、路径、左右叶子

leehal的博客 928

Unity AssetBundle 之 (入门)简单的资源打包成AB包的方法

Unity AssetBundle 之 (入门)简单的资源打包成AB包的方法 目录 Unity AssetBundle 之 (入门)简单的资源打包成AB包的方法 一、简单介绍 二、实现原理 三、注意事项 四、效果预览 五、实现步骤 六、关键代码 一、简单介绍 Unity中的一些基础知识点。 本节介绍,Asset Bundle 在 Unity中的使用,入门第一篇,如何AssetBundle标记,如何打包成AssetBundle的操作方法,有不对的地方欢迎指正。...

仙魁XAN 1万+

PLUS模型土地利用变化模拟使用简介

因子包括自然因子如社会因子,通过计算整理得到新图层,并以tif文件输出到驱动因子的文件夹里,驱动因子文件夹里存放的是tif文件格式。线性回归使用提供的所有的LULC资源数据,可以选择往后预测的年数,选择好数据之后,可以得出预测的每一年的每一用地类型面积数据。在此过程之后,可以继续使用此CARS输入的数据继续模拟,也可返回二(3)中CARS模块,重新输入不同的年份预测。在此过程之后,可以继续使用此CARS输入的数据继续模拟,也可返回二(3)中CARS模块,重新输入不同的年份预测。

qq_42831270的博客 5807

代码随想录算法训练营第十七天 | 110. 平衡二叉树、257. 二叉树的所有路径、404.左叶子之和

肯定是要遍历,那就用递归法,==这里总结一下心得,用递归法深度遍历就要考虑哪种遍历顺序,根据就是要做什么处理,比如这道题,要判断子树的信息,那就是后序遍历。==定义递归函数的意义:返回以传入节点为根节点的树的高度。一个细节就是判断是否为高度平衡二叉树,用-1表示不是,如果子节点不是高度平衡二叉树,那当前的节点也肯定不是了,算是一个小优化。我的理解就是有递归就要有回溯,但是是有前提的,前提就是只有当递归以后改变了传入参数的信息,并且传入参数在本次递归中还需要利用的就需要回溯,也就是把修改的内容去除掉。

Tong_1024_的博客 832

【ArcGIS Pro微课1000例】0073:ArcGIS Pro3.5.2学习版下载及安装教程

ArcGIS Pro 3.5.2安装教程摘要:系统需Windows10及以上,8GB内存(推荐32GB)。安装步骤:1)安装.NET 8.0运行环境;2)执行主程序安装包,按向导完成基础安装;3)安装升级补丁;4)替换AfCore.dll文件并导入注册表。注意安装后删除临时文件节省空间。软件下载地址包含在百度网盘链接。安装过程需依次完成环境配置、主程序安装、补丁更新及破解步骤。

智慧空间实验室 1778

代码随想录算法训练营第十七天| 110.平衡二叉树, 257. 二叉树的所有路径, 404.左叶子之和

代码随想录题解:​​​​​​​。

qq_42973684的博客 805

化工仿真软件:gPROMS二次开发_(1).gPROMS基础知识

在gPROMS中,模型是通过定义变量、参数和方程来创建的。模型可以是简单的单元操作,如换热器、反应器,也可以是复杂的系统,如整个化工流程。变量是模型中表示状态或输出的量。在gPROMS中,变量需要显式定义其类型和单位。# 定义变量VAR# 温度变量,单位为K# 压力变量,单位为Pa# 组分摩尔分数,数组变量参数是模型中表示常量或初始条件的量。参数同样需要定义其类型和单位。# 定义参数PAR# 理想气体常数,单位为J/(mol·K)# 反应器体积,单位为m^3# 初始摩尔数。

kkchenjj的博客 617

软硬件融合加速技术系列文章

目录 文章目录目录计算机组成原理Linux 操作系统原理处理器进程管理内存管理I/O 系统文件系统网络协议栈资源管理设备管理GPUFPGASmartNIC/DPU 计算机组成原理 《计算机组成原理 — 冯诺依曼体系结构》 《计算机组成原理 — 基本硬件设备》 《计算机组成原理 — CPU 中央处理器》 《计算机组成原理 — 指令系统》 《计算机组成原理 — 总线系统》 《计算机组成原理 — 存储系统》 《计算机组成原理 — 输入输出系统 — 存储控制器接口类型》 《计算机组成原理 — 服务器》 《计算机组成

烟云的计算 6806

代码随想录算法训练营第十七天 | LeetCode 110. 平衡二叉树、257. 二叉树的所有路径、404. 左叶子之和

【代码】代码随想录算法训练营第十七天 | LeetCode 110. 平衡二叉树、257. 二叉树的所有路径、404. 左叶子之和。

Hsusan的博客 307

Pytorch实现EdgeCNN(基于PyTorch实现)

本专栏整理了《图神经网络代码实战》,内包含了不同图神经网络的相关代码实现(PyG以及自实现),理论与实践相结合,如GCN、GAT、GraphSAGE等经典图网络,每一个代码实例都附带有完整的代码。

优快云 精品推荐 1万+

代码随想录算法训练营第十七天| 110.平衡二叉树、257.二叉树的所有路径、404.左叶子之和

从根节点开始到叶子节点的路径,必须前序遍历(先访问中节点,再访问左右节点),如果遇到叶子节点,就将字符串加入路径集合。:一个二叉树每个节点的左右两个子树的高度差的绝对值。但是本题的终止条件这样写会很麻烦,因为本题要找到。:要传入根节点,记录每一条路径的。(该逻辑可以控制空节点不入循环)用来拼接字符串(速度更快)。②终止处理逻辑(把路径放进。,这里递归不需要返回值。的时候,就找到叶子节点。不为空,其左右孩子都为。

weixin_44041958的博客 687

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

代码随想录算法训练营第十七天 | 110.平衡二叉树、257. 二叉树的所有路径、404.左叶子之和

打卡第17天,补卡中,懒狗又歇了几天。

weixin_51233575的博客 1319

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

代码随想录算法训练营第十七天 | 110.平衡二叉树 257.二叉树的所有路径 404.左叶子之和

暂时对回溯算法有了初步了解,回溯算法比较难理解的就是递归中的每次回溯,其实调用的递归函数还有自己的回溯,进去是啥,出了递归只是比进去的多了一个节点,所以除掉最后一个就可以了。2. 判断一棵树是不是平衡二叉树 不仅需要记录它的最大高度,还要判断子树是不是一棵平衡二叉树,如果不是平衡二叉树,它的最大高度就没有记录的必要了,但是需要对此做出标记。所以在处理节点的过程中,如果这个节点树是二平衡二叉树,我们就记录这棵树的最大高度,返回给上一层,如果不是平衡二叉树,那就给最大高度赋值-1,返回给上一层。

weixin_64591091的博客 869

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Python - 代码随想录算法训练营第十七天 | LeetCode110.平衡二叉树、LeetCode257. 二叉树的所有路径、LeetCode404.左叶子之和

题目链接给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。示例 1:给定二叉树 [3,9,20,null,null,15,7]返回 true。示例 2:给定二叉树 [1,2,2,3,3,null,null,4,4]返回 false。这部分递归的思路还需要学习。’ '.join(map(str,[1,2,3])) 的含义​。

m0_53503719的博客 860

代码随想录算法训练营第十七天||110.平衡二叉树、257. 二叉树的所有路径、404.左叶子之和

当遇到左叶子节点的时候,记录数值,然后通过递归求取左子树左叶子之和,和 右子树左叶子之和,相加便是整个树的左叶子之和。这道题目要求从根节点到叶子的路径,所以需要前序遍历,这样才方便让父节点指向孩子节点,找到对应的路径。此时还没完,递归完,要做回溯啊,因为path 不能一直加入节点,它还要删节点,然后才能加入新的节点。判断一个树的左叶子节点之和,那么一定要传入树的根节点,递归函数的返回值为数值之和,所以为int。递归的过程中依然是遇到空节点了为终止,返回0,表示当前节点为根节点的树高度为0。

weixin_48040500的博客 691

代码随想录算法训练营第十七天| LeetCode 110. 平衡二叉树、257.二叉树的所有路径、404.左叶子之和

主要学习了回溯的思想

qq_64336203的博客 958

代码随想录算法训练营第十七天 | 110.平衡二叉树,257. 二叉树的所有路径,404.左叶子之和

判断一个树的左叶子节点之和,那么一定要传入树的根节点,递归函数的返回值为数值之和,所以为int,使用题目中给出的函数就可以了。注意,只有当前遍历的节点是父节点,才能判断其子节点是不是左叶子。当遇到左叶子节点的时候,记录数值,然后通过递归求取左子树左叶子之和,和 右子树左叶子之和,相加便是整个树的左叶子之和。这道题目要求从根节点到叶子的路径,所以需要前序遍历,这样才方便让父节点指向孩子节点,找到对应的路径。如果该节点的左节点不为空,该节点的左节点的左节点为空,该节点的左节点的右节点为空,则找到了一个左叶子。

qwerty0157的博客 489

代码随想录算法训练营第十七天|110.平衡二叉树、257. 二叉树的所有路径、404.左叶子之和

判断二叉树是否为平衡二叉树。:判读二叉树遍历方式为左右根,求高度遍历方式也为左右根。:如果当前节点为空或者为叶子结点,则返回true;如果不为空或者为叶子结点,则判断左右子树高度差十分大于1,大于一则直接返回fasle,小于一要判断左右子树收否都为平衡二叉树,如果不是则返回fasle。

XiaoKeer666的博客 538

代码随想录算法训练营第十七天| ● 110.平衡二叉树 ● 257. 二叉树的所有路径 ● 404.左叶子之和

● 110.平衡二叉树 ● 257. 二叉树的所有路径 ● 404.左叶子之和

Zhen_JIANG的博客 512

代码随想录算法训练营第十七天110.平衡二叉树、257.二叉树的所有路径404.左叶子之和

给定一个二叉树,判断它是否是平衡二叉树。

weixin_42797677的博客 402

二刷代码随想录算法训练营第十七天 |110.平衡二叉树、257. 二叉树的所有路径 、404.左叶子之和

给定一个二叉树,判断它是否是高度平衡的二叉树。的左右两个子树的高度差的绝对值不超过 1。,返回所有从根节点到叶子节点的路径。给你一个二叉树的根节点。是指没有子节点的节点。,返回所有左叶子之和。

magic2142028406的博客 440

代码随想录算法训练营第十七天|110.平衡二叉树、 257. 二叉树的所有路径、404.左叶子之和

用了一个多小时。

weixin_62835741的博客 891

代码随想录算法训练营第十七天 | 110.平衡二叉树、257.二叉树的所有路径、404.左叶子之和

文章讲解/视频讲解:https://programmercarl.com/0257.%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E6%89%80%E6%9C%89%E8%B7%AF%E5%BE%84.html。用递归的方式进行判断:记录当前节点左右子树的高度h1,h2,如果h1和h2的高度差绝对值不超过1,则说明当前节点及其子树可构成一个平衡二叉树。每一次递归的处理中,对于当前节点,标记其来自于左节点或者右节点,如果当前节点属于叶子节点,且标记为左节点,则累加结果。

owlmo的博客 571
上一篇: 代码随想录算法训练营第十六天|● 104.二叉树的最大深度 559.n叉树的最大深度 ● 111.二叉树的最小深度 ● 222.完全二叉树的节点个数
下一篇: 代码随想录算法训练营第十八天| 513.找树左下角的值 112. 路径总和 113.路径总和ii 106.从中序与后序遍历序列构造二叉树 105.从前序与中序遍历序列构造二叉树
RuojiFW
博客等级 码龄9年 2粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值