leecode560 和为K的子数组

碎碎念android eMMC【转】 本文转载自:https://blog.youkuaiyun.com/Fybon/article/details/44242549 一、/dev/blockroot@:/dev/block #lsbootdevicemmcblk0mmcblk0p1mmcblk0p10…….mmcblk0p18mmcblk0p19mmcblk0p2mmcblk0p20……mmcblk0p29mmcblk0p3mmcblk0p3... 阅读详情

在这里插入图片描述

这个题我觉得难度挺高的,我刚开始以为这个题目时简单的滑动窗口的题型,想着用滑动窗口的思路去做这个题目,但是我做不出来,因为我不清楚这个滑动窗口窗口的移动条件是什么,原因如下

  1. 数组中并不全是正数,所以这个子数组和的大小随着窗口的移动或者缩小,可能会出现变大或者变小,导致这个窗口移动条件无法确定
  2. k可能是正数,可能是负数,如果是正数,那么是一种情况,子数组的和需要变大,如果是负数,那么子数组的和需要变小。
  3. 滑动窗口需要满足单调性,当右端点元素进入窗口时,窗口元素和是不能减少的。

正是上面的几个原因导致这个滑动窗口法无法解决问题,大概只能够解决34/93个案例

灵神的思路

灵神这个题目没有使用滑动窗口来做,而是利用了前缀和,参考这个((20250815113110-uyw74ng ‘0303 区域和检索 - 数组不可变’))

前缀和解题的关键就是要明白——前缀和-另一个前缀和= 这两个之间元素的和

我们利用前缀和可以很轻易的得出任意两个元素之间的和。

方法——两数之和,查找

在((20250728094651-r58pb04 ‘0001 两数之和’)) 中,我们直到在一个数组中如果a+b = target的话可以使用二重循环,或者map集合来查找。
在这个题中,也是类似于两数之和的(我没看出来,吸收的还是不太到位)

已知计算公式为:前缀和-另一个前缀和= 这两个之间元素的和

我们已知一个前缀和,已知这个区间的和,那么我们就需要找另一个前缀和了

public int subarraySum(int[] nums, int k) {
    int[] s = new int[nums.length+1];
    int ans=0;
    for(int i =0;i<nums.length;i++){
        s[i+1]=s[i]+nums[i];
    }
    //联想两数之和,已知一个数,去寻找另一个数,我们可以用二重循环,也可以用哈希表
    //map集合第一个参数表示,要查询的值,第二个参数是这个要查询的值的个数
    Map<Integer,Integer> map = new HashMap<>();
    for(int i =0;i<s.length;i++){
        //从后向前,验证i处的前缀和,和i之前的前缀和中有没有满足这个nums[i]-k的
        ans+=map.getOrDefault(s[i]-k,0);
        //更新这个map集合,判断前缀和为某一个数的有多少个
        map.put(s[i],map.getOrDefault(s[i],0)+1);
    }
    return ans;
}
告别专业软件!用QGIS+GDAL免费搞定S-57电子海图,附全套符号库和样式文件 本文详细介绍了如何利用免费开源工具QGIS和GDAL处理S-57电子海图,包括数据转换、符号库配置和专业可视化方案。通过实战指南,用户无需依赖昂贵的商业软件,即可实现从S-57到SHP的转换及专业级海图制作,特别适合预算有限的个人和小型机构。 阅读详情

相关推荐

揭秘cocos-mcp:如何用AI助手提升CocosCreator游戏开发效率

本文深入介绍了cocos-mcp工具,它作为连接AI助手与CocosCreator编辑器的桥梁,遵循MCP协议,能显著提升游戏开发效率。通过自然语言指令,开发者可让AI直接查询场景结构、批量修改属性或生成上下文代码,将重复操作变为智能调度,实现从“手动操作者”到“指令指挥官”的工作流变革。

weixin_29001683的博客 1048

Leecode 560——和为K的子数组

给你一个整数数组 nums 和一个整数 k ,请你统计并返回该数组中和为 k 的子数组的个数。

qq_53507133的博客 381

【免费】最新区块链钱包和私钥的助记词碰撞器,使用python开发

最新钱包私钥助记词碰撞器,搏一搏单车变摩托!

weixin_48529185的博客 1万+

Leecode 560 和为K的子数组个数

题目说明: 给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。 示例 1 : 输入:nums = [1,1,1], k = 2 输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。 说明 : 数组的长度为 [1, 20,000]。 数组中元素的范围是 [-1000, 1000] ,且整数 k 的范围是 [-1e7, 1e7] 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/subarray-sum-equals

Kingsley's Blog 442

整理并记录几种运算放大器

运算放大器是一种十分常见的电子元器件,最近我在学习运放,以前在学校没有好好的学习,今天在B站看了唐老师讲运算放大器-唐老师讲电赛系列视频教程,记录下所学的,纯当是自己的笔记 学习运放,有两个重要的概念及重要的计算法宝,虚短vp=vn;和虚断ip=in 1反向比例运算电路 Rf可以大于、小于或等于R,起到放大、跟随、衰减输入的作用; 平衡电阻没有太高的精度要求,可加可不加; 有些运放内部集成了补偿电路,就不需要使用平衡电阻,加了反而增大误差,如OPA227 2.同向比例运放电路 .

qq_36823004的博客 6364

bert-ini:一种基于bert的实体对齐交互模型

本次分享一项来自IJCAI-20的实体对齐工作,该工作提出了一种不同于以往的采用图结构信息进行实体对齐的技术方案,该方案取得了当时的最好效果;不仅如此,模型本身的对齐效率在该项工作中也被考虑,实际工作中非常具备借鉴意义。

qq_33331424的博客 3150

LeeCode 560.和为K的子数组

给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数。子数组是数组中元素的连续非空序列。示例 1:输入:nums = [1,1,1], k = 2输出:2示例 2:输入:nums = [1,2,3], k = 3输出:2。

Java超神之路 475

华为OD面试手撕真题 - 最大数

华为OD面试手撕真题 最大的数 提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解

qq_45776114的博客 340

Leecode hot100 - 560. 和为 K 的子数组

给你一个整数数组nums和一个整数k,请你统计并返回该数组中和为k的子数组的个数。子数组是数组中元素的连续非空序列。22。

2301_79601111的博客 430

手把手教你学simulink实例--基于Simulink的船舶动力定位系统建模与仿真

船舶动力定位系统(Dynamic Positioning System, DPS)是一种通过控制推进器来保持船舶在指定位置和航向的技术。它广泛应用于海上钻井平台、海洋调查船、起重船等需要精确位置控制的场景。DPS的核心任务是实时感知环境干扰(如风、浪、流),并通过闭环控制算法调整推进器输出,以抵消外界扰动并维持船舶的位置和姿态。本项目旨在基于MATLAB/Simulink平台,构建船舶动力定位系统的数学模型,并进行仿真分析,验证其性能和稳定性。

MHD0815的博客 1083

ThingsBoard3.9.1规则引擎方式发送钉钉通知消息

thingsboard3.9.1/4.0规则链方式发送钉钉通知消息。

hssjf的专栏 531

LeeCode 560. 和为K的子数组 [中等 40.7%]

给定一个整数数组和一个整数k,你需要找到该数组中和为k的连续的子数组的个数。 示例 1 : 输入:nums = [1,1,1], k = 2 输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。 说明 : 数组的长度为 [1, 20,000]。 数组中元素的范围是 [-1...

chengyao8926的博客 244

【2024年华为秋招-12月25日-第三题(300分)- PCB印刷电路板布线】(题目+思路+Java&C++&Python解析+在线测试)

在PCB印刷电路板设计中,器件之间的连线需要避免线路的阻抗值增大、而且赛件之间还有别的器件和别的干扰源,在布线时我们希望受到的干扰尽量小。现将电路板简化成一个M×N的矩阵,每个位置(单元格)的值表示其源干扰度。如果单元格的值为0,表示此位置没有干扰源;如果单元格的值为非0,则表示此位置是干扰源,其值为源干扰度。连线经过干扰源或干扰源附近会增加连线的总干扰度。位置Axy的干扰源的源干扰度为dd01、若连线经过位置Axy,则其总干扰度会增加d;2、若连线经过离位置A。

m0_73659489的博客 344

LeeCode热题100学习总结--560题和为K的子数组

前缀和的思想是 在 [ i , j ](i<j)的区间和为sum[ j ] - sum[ i ],即 通过 sum[ j ] - sum[ i ] = k 的式子我们可以找到 [ i+1 , j ](i<j)的子数组的和即为k,那么转换一下 sum[ j ] - k = sum[ i ] (j>i),sum[ i ]即为之前的前缀和,把sum[ i ]存入map中,那么我们便可以在时间复杂程度为O(n)的枚举中找出所有符合题意的子数组个数了。/*因为第一次找到子数组和为k时,前缀和sum-k=0。

i56433u的博客 482

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

LeeCode560和为k的子数组(Java)(前缀和)

题目链接:LeeCode560和为k的子数组 题目描述: 这道题最开始想用滑窗做,但是后来考虑数组里面是有负数的,方向是出错的,首先考虑最笨的放法就是遍历一遍确定左边界,然后向后计算是否有结果等于k的子数组。时间复杂度O(n*n),然后考虑前缀和,算出所有的前缀和例如1 1 1 1 1 k=3,前缀和为1 2 3 4 5 结果等于3的子数组就是 4-1,5-2,3-0三种情况。得出代码: class Solution { public static int subarraySum(int[] num

weixin_43590593的博客 268

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Leecode560:和为 K 的子数组

这里利用了累加然后通过哈希表寻找值的思想。就是先将前面的数全部加起来,统计出现的频率,再将这个数与目标数作对比,每次查找当前是否存在 当前数-目标数 这个数字的值(代表可以减去得到对应数量的答案),有的话看存在几个,这样就可以不用重复计算的得到可以有多少种结果满足当前的值。这道题用暴力解法时间复杂度会很高,但是涉及到和等于多少的情况,一般情况下会考虑以空间换时间来存储前面获得的信息,然后将答案为某值的结果返回。

MengyuyangEddy的博客 395

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Leecode热题100-560.和为k的子数组

Leecode热题100-560.和为k的子数组,这个还有个树的相关题,我稍后会写,大厂常考题,务必掌握

个人专长:数据结构和算法、大数据、数据库、主流框架 438

每日一道算法面试题(16):leecode 560 和为K的子数组

1.算法题目 给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。 示例 1 : 输入:nums = [1,1,1], k = 2 输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。 说明 : 数组的长度为 [1, 20,000]。 数组中元素的范围是 [-1000, 1000] ,且整数 k 的范围是 [-1e7, 1e7]。 2.算法思路 暴力法:...

Alexlee1986的专栏 477

LeeCode_560. 和为 K 的子数组(map+前缀和)

一、介绍 1.题目描述 题目链接: https://leetcode-cn.com/problems/subarray-sum-equals-k/ 给你一个整数数组 nums 和一个整数 k ,请你统计并返回该数组中和为 k 的连续子数组的个数。 2.测试样例 [1,1,1] 2 # 2 [1,2,3] 3 # 2 [0,0,0,0,0] 0 # 15 二、题解 1、map+前缀和???? 我们定义pre[i]代表num[0]+num[1]+...+num[i]的和【即前n项的和】。 当某个连续序列n

Netceor的博客 338

Leecode热题100---560:和为k的子数组个数

python和C++实现Leecode--560

qq_41920323的博客 325

leetcode刷题记录(五十四)——560. 和为 K 的子数组

560. 和为 K 的子数组 - 力扣(LeetCode)560. 和为 K 的子数组 - 给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数。子数组是数组中元素的连续非空序列。

weixin_45994787的博客 789

LeetCode - 560. 和为 K 的子数组

解题思路有两种主要方法:暴力法:检查所有可能的子数组,计算它们的和,统计等于k的子数组数量前缀和 + 哈希表:使用前缀和和哈希表来优化,这是最优解我们要找的是所有满足sum[j+1] - sum[i] = k的(i,j)对,等价于寻找所有满足sum[i] = sum[j+1] - k的(i,j)对。时间复杂度:O(n),其中n是数组长度,我们只需要遍历数组一次。空间复杂度:O(n),最坏情况下哈希表需要存储n个不同的前缀和

2402_83315537的博客 794

leetcode-560:和为 K 的子数组

题目连接给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。 示例 1: 示例 2: 解题 方法一:前缀和(超时) 方法二:前缀和+哈希表 红色部分就是我们要求的和为k的子数组 如果当前遍历到的前缀和是presum,那么只要知道presum-k的个数就行了,对最后结果加上presum-k的个数 通过map去维护一个前缀和 的个数...

菊头蝙蝠的博客 357

LeetCode系列560—和为K的子数组

题意 560.和为 K 的子数组 题解 方法一:枚举 class Solution { public: int subarraySum(vector<int>& nums, int k) { int ans = 0; for (int i = 0; i < nums.size(); i++) { int sum = 0; for (int j = i; j >= 0; j--) {

fkuner的博客 460

LeetCode 560. 和为K的子数组(前缀和)

Description 给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。 示例 1 : 输入:nums = [1,1,1], k = 2 输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。 说明 : 数组的长度为 [1, 20,000]。 数组中元素的范围是 [-1000, 1000] ,且整数 k 的范围是 [-1e7, 1e7]。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/subarray-

sunlanchang的博客 426

leecode第五百六十题(和为K的子数组)

class Solution { public: int subarraySum(vector<int>& nums, int k) { int cur = 0, res = 0; unordered_map<int, int> um; // 注意这里前缀和多了一个0,防止漏掉数...

weixin_30550271的博客 159
上一篇: leecode303 区域和检索 - 数组不可变
下一篇: leecode239 滑动窗口的最大值
TranquilGlow
博客等级 码龄5年 132粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值