LeetCode(6)-树:递归问题

Linux 安装gradle完整教程 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UYjb1Pl3-1685497652066)(/Users/zhangwenbin/Desktop/202305301739722.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SfOr7EjB-1685497653296)(null)]shift+G 进入最后一行。也可以在这里下载历史版本。 阅读详情

二叉树和多叉树是一种天然的递归结构,每一个节点下的左子树或右子树(针对二叉树)都具有和上一个节点代表的树有从属关系,所以在二叉树和多叉树中有许多问题通过递归来解决会十分地简单和方便,本篇文章将对此类题型做一些刷题总结。若对二叉树的基础知识以及递归的基础知识不甚了解的朋友可先去了解这些基础知识后再来查看,本篇不在赘述这些基础知识。

一、递归


首先说说我对于递归的理解:我认为递归是计算机科学高速发展带来的产物,它通过不断地调用自身递归函数解决了有一定规律的问题,将大问题化为小问题,将小问题做出解答,最后再有递归调用栈的层次依次返回已解决的问题,对于递归来说有以下过程:

  • 1、递归终止条件
  • 2、递归过程(递推)
  • 3、递归结果

其中,递归终止条件是每个递归函数都必须存在的,它是整个递归函数的出口,也是一种已知的、最基本的、可直接得出解答的一个case;递归过程也别称为递推,在递归过程中不断地对自身进行递归调用,这个过程中是完成问题由大到小的一个过程;递归结果指的是在每次递归中会将解决的问题返回,最后一次就已经是整个大问题的解决结果了。

最后还有一个很关键的点是,不要尝试去完全理解一个复杂的递归过程:对于递归的理解在于放弃!

二、LeetCode相关题目

2.1、LeetCode 226. 翻转二叉树

翻转一棵二叉树。

示例:

输入:

 4

/ \
2 7
/ \ / \
1 3 6 9
输出:

 4

/ \
7 2
/ \ / \
9 6 3 1
备注:
这个问题是受到 Max Howell 的 原问题 启发的 :

谷歌:我们90%的工程师使用您编写的软件(Homebrew),但是您却无法在面试时在白板上写出翻转二叉树这道题,这太糟糕了。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/invert-binary-tree
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

 



对于这道题来说,用递归来做会十分地简单。先确定一下必须的一些条件:
1、递归终止条件:当当前递归的节点为null时,返回null
2、递归过程:分别对左右两颗子树进行翻转的递归操作,在这里还需要交换当前节点的左子和右子节点
3、递归结果:当前左子和右子被翻转过后的节点

 

代码实现:

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    public TreeNode invertTree(TreeNode root) {
       //递归终止条件
        if (root == null) return null;
        //递归过程
        //交换子节点
        swap(root, root.left, root.right);
        //翻转左子树
        invertTree(root.left);
        //翻转右子树
        invertTree(root.right);
        return root;
    }

    private void swap(TreeNode root, TreeNode left, TreeNode right) {
        TreeNode temp = left;
        root.left = root.right;
        root.right = temp;
    }
}

2.2、LeetCode 104. 二叉树的最大深度

给定一个二叉树,找出其最大深度。

二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。

说明: 叶子节点是指没有子节点的节点。

示例:
给定二叉树 [3,9,20,null,null,15,7],

3

/ \
9 20
/ \
15 7
返回它的最大深度 3 。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/maximum-depth-of-binary-tree
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

 



这个问题还是一样的,要找到根节点为头的二叉树的最大深度,其实就是分别在左子树中找到最大深度+1(包括当前节点)和在右子树中找到最大深度+1,然后比较哪个节点值大一些,大者即为二叉树的最大深度。现在确定以下递归的条件:

 

  • 1、递归终止条件:当遇到子节点时即终止,返回1(代表当前节点数)
  • 2、递归过程:当前节点的最大深度即为左子树最大深度+1和右子树最大深度+1中的最大值
  • 3、递归结果:返回当前节点代表的子树的节点最大值

代码实现:

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
 public int maxDepth(TreeNode root) {
        //节点为空的情况,直接返回0
        if (root == null) return 0;
        //终止条件
        //是叶子节点,返回1
        if (root.left == null && root.right == null) return 1;
        //递归过程
        //分别在左子树和右子树中找最大深度
        int leftMaxDepth = maxDepth(root.left);
        int rightMawDepth = maxDepth(root.right);
        //取左子树和右子树中的最大者+1即为当前节点最大深度
        return leftMaxDepth > rightMawDepth ? leftMaxDepth + 1 : rightMawDepth + 1;
    }
}

2.3、LeetCode 112. 路径总和

给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。

说明: 叶子节点是指没有子节点的节点。

示例: 
给定如下二叉树,以及目标和 sum = 22,

          5
         / \
        4   8
       /   / \
      11  13  4
     /  \      \
    7    2      1

返回 true, 因为存在目标和为 22 的根节点到叶子节点的路径 5->4->11->2。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/path-sum
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

 



这道题的解决思路是,递归地在当前节点的左右子树中判断该子树的总和值是否为sum - cur.val,直至找到某条路径的叶子节点时该值是否等于叶子节点的值

 

  • 1、递归终止条件:当遇到子节点时,判断传过来的值是否为该子节点的值

  • 2、递归过程:分别在左右子树中寻找,并且每次指行递归函数时都将sum减去当前节点的值

  • 3、递归结果:返回当前路径是否满足路径之和

代码实现:

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    public boolean hasPathSum(TreeNode root, int sum) {
        //一开始就为空节点
        if (root == null) return false;
        //递归终止条件:叶子节点的值是否等于层层删减的sum
        if (root.left == null && root.right == null) {
            return root.val == sum;
        }
        //递归过程
        //在左子树中寻找
        if (hasPathSum(root.left, sum - root.val)) {
            //左子树中存在该路径
            return true;
        }
        //左子树中不存在该路径,在右子树中寻找
        if (hasPathSum(root.right, sum - root.val)) {
            //右子树中存在该路径
            return true;
        }
        return false;
    }
}

2.4、LeetCode 111. 二叉树的最小深度

这个问题是上面的哪个二叉树的最大深度问题类似,不过不同的是这个问题需要准确地将递归导向到有叶子节点的那颗子树上去,不然会出现解答错误:

  • 1、递归终止条件:当前节点为空时返回空;当遇到当前节点不存在左子数时,需要将递归导向到右子树中;当遇到当前节点不存在右子树时,需要将递归导向到左子树中
  • 2、递归过程:分别在左右子树中寻找最小值节点总数
  • 3、递归结果:当前节点代表的二叉树中的路径节点最小值

代码实现:

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {

 public int minDepth(TreeNode root) {
        if (root == null) return 0;
        //递归终止条件
        if (root.left == null && root.right != null){
            //左子树为空,右子树不为空,所以要在右子树中寻找叶子节点
            return minDepth(root.right) + 1;
        } else if (root.right == null && root.left != null) {
            //右子树为空,左子树不为空,所以在左子树中寻找叶子节点
            return minDepth(root.left) + 1;
        }
        //递归过程  
        //左右子树都不为空,分别在左右子树中寻找
        return Math.min(minDepth(root.left), minDepth(root.right)) + 1;
    }
}

 

2.5 LeetCode 617.合并二叉树

给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。

你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。

示例 1:

输入: 
    Tree 1                     Tree 2                  
          1                         2                             
         / \                       / \                            
        3   2                     1   3                        
       /                           \   \                      
      5                             4   7                  
输出: 
合并后的树:
         3
        / \
       4   5
      / \   \ 
     5   4   7
注意: 合并必须从两个树的根节点开始。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/merge-two-binary-trees
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

这题使用递归来做十分地简单方便:

public TreeNode mergeTrees(TreeNode t1, TreeNode t2) {
        // TODO: 19-8-23 递归做法 
        if (t1 == null && t2 == null) return null;
        if (t1 == null || t2 == null) {
            if (t1 == null) return  t2;
            if (t2 == null) return  t1;
        }
        TreeNode res = new TreeNode(t1.val + t2.val);
        //合并两棵树的左子树
        res.left = mergeTrees(t1.left, t2.left);
        //合并两棵树的右子树
        res.right = mergeTrees(t1.right, t2.right);
        return res;
    }

 

未完持续...

 

【2024最新】Gradle安装配置教程 阅读详情

相关推荐

力扣树专题-4 用leetcode104求树的深度举例 总结递归秒杀树问题的套路! java刷题笔记

递归秒杀树问题的小套路~使用leetcode104 求树的深度 来进行举例说明~

一碗菜粥的博客 1291

Gradle下载安装教程

gradle 下载安装教程

m0_49683806的博客 2634

LeetCode刷题心得:如何高效解决树问题

本文旨在为准备技术面试的开发者提供一套系统性的树问题解决方法,涵盖从基础到进阶的各类树结构问题。我们将重点讨论二叉树相关题目,这些方法同样适用于N叉树和其他变种。核心概念与联系:理解树的基本特性和操作核心算法原理:递归与迭代的深度解析项目实战:典型LeetCode题目详解应用场景与优化策略总结与进阶思考二叉树:每个节点最多有两个子节点的树结构BST(二叉搜索树):左子树所有节点值小于根节点,右子树所有节点值大于根节点完全二叉树:除最后一层外,所有层都被完全填充,且节点都向左对齐。

AI 算法实战派 966

Gradle的简介、下载、安装、配置及使用流程

Gradle是一个基于JVM的项目构建工具,是一款通用灵活的构建工具,支持maven、Ivy.......多种第三方仓库。

AquaMriusC的博客 8775

ComfyUI 的 LoRA 训练:秋叶 LoRA-scripts 参数设置与测试方法详解

秋叶 LoRA-scripts 的参数设置需结合理论(如模型原理、优化器机制)和硬件条件(显存、算力),新手可先按推荐值起步,再逐步调整。测试时,loss 值帮你判断训练是否正常,XYZ 图表法帮你找到最佳使用参数。掌握这些知识,你就能避开 LoRA 训练的常见坑,从 “盲目调参” 变为 “精准训练”。

2301_78150483的博客 2403

波束管理 Beam Management

Beam Management in 5G NR   波束管理,是5G NR中基于信道质量来动态选择每个UE和gNB之间以什么方向和频率的波束beam来进行通信。   背景   5G NR(New Radio)支持非常高的数据速率和更低的延迟。5G NR支持FR1和FR2频段,FR1为亚6 GHz(450至6000 MHz);FR2为毫米波段(24.25 GHz至52.6 GHz)。   由于毫米波频带使用非常高的频率,因此会导致传播损耗和其他损耗。为了补偿损失,在这种频率下定向通信是必不可少的。

最忆是江南的博客 5827

Gradle 的下载安装教程

将含 bin 的 Gradle 安装文件夹放到你喜欢的目录下,并设置 Windows 中的环境变量(在设置 Gradle 的环境变量之前必须完成 JDK 的环境变量。选择合适的下载工具就可以下载了,因为是外国的网站,所以有可能下载缓慢,在百度云离线下载、浏览器内置下载和迅雷中,用迅雷下载的话非常快,所以推荐迅雷。,应该会出现一些配置信息,这说明前面的设置已经成功。按照需要选择 Gradle 其中的一个版本进行下载,这里选择的是。的上一级目录)即为 Gradle 的安装目录。后缀的才是需要下载的。

暗诺星刻的博客 1万+

GaN制备micro-led(一)

随着第三代半导体 GaN 材料的快速发展,GaN 基 LED 发展迅速并广泛商业化,这 为可见光通信的实现及应用提供了基础。然而,普通商用 LED 的调制带宽只有几十兆 赫兹,并不能很好的满足可见光通信系统高传播速率的需求。为增大调制带宽,针对发 射端 LED 光源部分的改进仍需提高。将光子晶体结构引入 LED 芯片量子阱内部,能够 影响光子寿命和光子传播,进而改变 LED 芯片的调制带宽和光提取效率。结合倒装微 尺寸(Micro)LED 结构,使其封装体积最小化,这使得可见光通信能够更加灵活地.

weixin_45852211的博客 896

Leetcode刷题——树篇6

文章目录6、树(中等篇2)6.1、94. 二叉树的中序遍历6.2、1261. 在受污染的二叉树中查找元素6.3、6.4、6.5、6.6、6.7、6.8、6.9、6.10、 6、树(中等篇2) 6.1、94. 二叉树的中序遍历 给定一个二叉树,返回它的中序 遍历。 示例: 输入: [1,null,2,3] 输出: [1,3,2] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 来源:力扣(L...

w137093940的博客 1202

LangChain Message 官方文档

消息是聊天模型中的基本通信单位。它们用于表示聊天模型的输入和输出,以及与对话相关的其他上下文或元数据。每条消息都包含一个角色(如“用户”、“助手”)和内容(如文本或多模态数据),并可能包含根据不同聊天模型提供商而有所不同的附加元数据。LangChain 提供了一个统一的消息格式,可以跨不同聊天模型使用,简化用户在不同模型之间切换时所需关注的消息格式差异。

AI Agent 首席体验官 897

安装 Claude Code 并接入阿里云百炼(Bailian)

这些工具通常提供可视化界面,只需在设置中填入阿里云百炼的 API Key 和 Base URL 即可,无需配置环境变量。注意:如果你使用的是阿里云百炼的 Coding Plan 套餐,请使用该套餐专属的 API Key 和 Base URL。你可以使用文本编辑器打开该文件,或者在终端使用命令(如 macOS/Linux 下使用 nano ~/.claude/settings.json)。你可以直接用自然语言下达指令,例如:“帮我在这个目录下写一个 Python 脚本,实现两数之和的功能”。

hopsky的博客 1846

力扣75——深度优先搜索

深度优先搜索

weixin_45034895的博客 698

基于Python的IMF经济数据爬取与分析:从入门到实战

本文详细介绍了如何使用Python爬取国际货币基金组织(IMF)的经济数据,包括最新的爬虫技术、反反爬策略、数据解析与存储方法。文章从IMF数据源分析开始,逐步讲解如何构建一个完整的爬虫系统,并提供了详细的代码实现和优化建议。通过本文,读者将掌握爬取复杂国际组织数据的关键技术,并能将这些技术应用于其他类似的数据获取场景。关键词:Python爬虫、IMF数据、经济数据获取、数据清洗、反爬策略IMF Data (data.imf.org) - 主要数据门户。

2201_76125261的博客 1439

递归 力扣 572 另一个树的子树

力扣 572 另一个树的子树 给定两个非空二叉树 s 和 t,检验 s 中是否包含和 t 具有相同结构和节点值的子树。s 的一个子树包括 s 的一个节点和这个节点的所有子孙。s 也可以看做它自身的一棵子树。 示例 1: 给定的树 s: 3 / \ 4 5 / \ 1 2 给定的树 t: 4 / \ 1 2 返回 true,因为 t 与 s 的一个子树拥有相同的结构和节点值。 示例 2: 给定的树 s: 3 / \ 4 5

Gettler的博客 679

Orange3实战教程:文本挖掘---主题建模

主题建模通过LDA、LSI或HDP算法分析文档集合,自动发现隐含主题结构。组件输入为文档语料库,输出包括带主题权重的语料库、主题词分布及完整主题数据。不同算法特性各异:LSI允许正负权重但解释性较弱,LDA更易解释,HDP参数复杂需谨慎设置。结果可结合词云、热力图等可视化工具分析主题特征及分布。示例显示如何通过预处理文本、选择算法(如提取5个LDA主题),并利用MDS和箱线图探索主题间关系及关键词分布。

err2008的专栏 367

ResNet改进(45):结合通道混洗(ShuffleNet)的混合架构

本文提出了一种创新的卷积神经网络(CNN)架构CustomResNet,它将ResNet34与通道混洗(ChannelShuffle)技术相结合。该模型通过ShuffleBlock模块替换原始ResNet层,包含三个核心组件:1) ChannelShuffle模块实现通道分组混洗;2) ShuffleBlock模块整合点卷积、分组卷积和残差连接;3) CustomResNet主模型保持ResNet整体架构但替换核心层为ShuffleBlock。这种设计既保留了ResNet的残差学习能力,又通过通道混洗增强特

2401_82355416的博客 212

LeetCode——树:递归

LeetCode——树:递归 目录 概述 树的高度(LeetCode104) 平衡树(LeetCode110) 两节点的最长路径(LeetCode543) 翻转树(LeetCode226) 归并两棵树(LeetCode617) 判断路径和是否等于一个数(LeetCode112) 统计路径和等于一个数的路径数量(LeetCode437) 子树(LeetCode572) 树的对称(LeetCode...

努力努力再努力L 457

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

力扣100. 相同的树(递归、迭代)

力扣100. 相同的树(递归) https://leetcode-cn.com/problems/same-tree/ 给定两个二叉树,编写一个函数来检验它们是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 示例1: 输入: 1 1 / \ / \ 2 3 2 3...

小麦China的博客 422

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

树的递归写法

树的相关递归写法 将树分为三部分,根节点,左子树, 右子树,分别判断情况 递归出口, 判断是return false 还是return true; 根节点满足某种条件 return 递归(左子树) && 递归(右子树) 满足某种条件 或者 return 递归(左子树) || 递归右子树 只要有一边满足条件即可 return false 100. Same Tr...

qq_28350997的博客 5430

递归-206.反转链表-力扣(LeetCode)

链表可以看作一棵特殊的树,将横着摆放的链表竖直摆放,此时再看就有点树的感觉了。后序遍历是一种二叉树的遍历方法,即先左子树、右子树、根的顺序遍历二叉树,与其相似的还有前序遍历和中序遍历,它们的区别在于根访问的位置,第一个就访问的根就是前序遍历,在中间就是中序遍历,在最后就是后序遍历。接下来看一看具体过程。我们的重复子问题是,将当前节点后面的链表反转,所以需要一个ListNode*类型的变量。由于我们还需要返回新的头指针,所以返回值类型也是ListNode*。题目给我们提供的函数就可以拿过来直接用。

black_bear_white的博客 1177

递归究竟是什么?如何快速编写正确的递归代码? —— 力扣经典面试题详解

归是一种算法设计技术,它允许一个函数在其定义或说明中有直接或间接调用自身的方法。递归在数学和计算机科学中有着广泛的应用,它通过将复杂问题分解为规模较小、形式相同的子问题来求解。递归的基本原理包括:每一级的函数调用都有自己的变量;每一次函数调用都会有一次返回;递归函数中,位于递归调用前的语句和各级被调用函数具有相同的执行顺序;递归函数中,位于递归调用后的语句的执行顺序和各个被调用函数的顺序相反;虽然每一级递归都有自己的变量,但是函数代码并不会得到复制。

Zhenyu_Coder的博客 1604

【力扣刷题实战】相同的树

文章目录目录力扣题目: 相同的树题目描述示例 1:示例 2:示例 3:解题思路题目理解算法选择具体思路解题要点完整代码(C语言)兄弟们共勉 !!! 每篇前言

2401_85548793的博客 724

递归在树中的利用

判断的标准是这两棵树在结构上相同,并且对应节点的值也相同。我们就可以采用递归的方式遍历左右子树,判断它们相不相等,递归的边界条件是p和q有一个为空,此时就可以判断两个结点是否相同了。其实很简单,由于我们得到的深度是非负数,那么如果我们在递归过程中发现左右子树不平衡,就返回-1。其实这一题和上一题几乎就是一模一样的,但是判断的对象变成了左子树和右子树是否相等,我们完全可以借用上一题的代码,小作修改而成。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。,编写一个函数来检验这两棵树是否相同。

chenhehe11的博客 2189

力扣刷题篇之递归

​ 刷题按照:[力扣刷题攻略] Re:从零开始的力扣刷题生活 - 力扣(LeetCode),如图,因为是讲递归,所以所有题的首解都是给的递归。 递归不要看全过程,看一次递归就好,可以参考三道题套路解决递归问题 | lyl's blog (lyl0724.github.io) ​

m0_66076989的博客 1531

100. 相同的树【 力扣(LeetCode) 】

给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。【 m,n 为两棵树的结点数】【 h 为两棵树的树高】

yyh520025的博客 1258

【力扣】100. 相同的树

一、题目描述: 给定两个二叉树,编写一个函数来检验它们是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 示例 1: 输入: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1,2,3] 输出: true 示例 2: 输入: 1 ...

qq_45328505的博客 520
上一篇: LeetCode(5)-链表:其他问题
下一篇: SpringBoot学习笔记(1)-SpringBoot入门
BoringRong
BoringRong 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄9年 2万+粉丝 386原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BoringRong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值