Search for a Range 有序数组里查找一个数的出现区间 @LeetCode

C#:实现有序数组中查找数字的范围(附完整源码) 阅读详情

经典多次二分法!


package Level4;

import java.util.Arrays;

/**
 * Search for a Range
 * 
 * Given a sorted array of integers, find the starting and ending position of a
 * given target value.
 * 
 * Your algorithm's runtime complexity must be in the order of O(log n).
 * 
 * If the target is not found in the array, return [-1, -1].
 * 
 * For example, Given [5, 7, 7, 8, 8, 10] and target value 8, return [3, 4].
 * 
 */
public class S34 {

	public static void main(String[] args) {
		int[] A = {5,8,8,8,8,8,8,8,8,10};
		int[] ret = searchRange(A, 10);
		System.out.println(Arrays.toString(ret));
	}

	public static int[] searchRange(int[] A, int target) {
		int[] ret = {Integer.MAX_VALUE, Integer.MIN_VALUE};
		rec(A, target, ret, 0, A.length-1);
		if(ret[0] == Integer.MAX_VALUE){
			ret[0] = -1;
		}
		if(ret[1] == Integer.MIN_VALUE){
			ret[1] = -1;
		}
		return ret;
	}
	
	// 先用二分法找到满足条件,然后对两边分别二分法继续寻找
	public static void rec(int[] A, int target, int[] ret, int low, int high){
		if(low > high){
			return;
		}
		
		int mid = low + (high-low)/2;
		if(target == A[mid]){
			ret[0] = Math.min(ret[0], mid);		// 保存最小下限
			ret[1] = Math.max(ret[1], mid);		// 保存最大上限
			rec(A, target, ret, low, mid-1);		// 继续找满足条件的下限
			rec(A, target, ret, mid+1, high);		// 继续找满足条件的上限
		}else if(target < A[mid]){
			rec(A, target, ret, low, mid-1);
		}else{
			rec(A, target, ret, mid+1, high);
		}
	}

}


public class Solution {
    public int[] searchRange(int[] A, int target) {
        int[] ret = {-1,-1};
        rec(A, target, ret, 0, A.length-1);
        return ret;
    }
    
    public void rec(int[] A, int target, int[] ret, int left, int right) {
        if(left > right) {
            return;
        }
        
        int mid = left + (right-left)/2;
        if(A[mid] == target) {
            if(mid-1>=0 && A[mid-1] == target) {
                rec(A, target, ret, left, mid-1);
            } else {
                ret[0] = mid;
            }
            if(mid+1<=A.length-1 && A[mid+1] == target) {
                rec(A, target, ret, mid+1, right);
            } else {
                ret[1] = mid;
            }
            if(ret[0] != -1 && ret[1] != -1){
                return;
            }
        } else if(A[mid] < target) {
            rec(A, target, ret, mid+1, right);
        } else {
            rec(A, target, ret, left, mid-1);
        }
    }
}




C#实现查找有序数组数字范围的方法及源代码 在C#中,我们可以使用二分查找算法来查找有序数组中特定数字的范围。这个算法可以快速地找到目标数字所在的位置,并且定位出它的左右边界。这个算法的时间复杂度为O(log n),其中n是数组的长度。因此,在大型的有序数组中查找特定数字的范围时,这个算法非常优秀。方法用来查找数字的左右边界。当我们执行这个程序时,它会输出目标数字的范围。在这个例子中,我们定义了一个有序数组并且输入了目标数字。C#实现查找有序数组数字范围的方法及源代码。 阅读详情

相关推荐

查找数组中的数

C#418-查找数组中的数,给出一个数值,查找数组中有没有匹配值,源代码

LeetCode 34. Search for a Range(有序数组,查找给定值范围)

题目描述:    Given an array of integers sorted in ascending order, find the starting and ending position of a given target value.    Your algorithm's runtime complexity must be in the order of O(log n).  ...

andersonxie的博客 463

从零到千兆:KSZ9031 PHY芯片在Zynq PS端的驱动移植心路历程

本文详细记录了在Xilinx Zynq-7000平台(基于XC7Z020芯片)上,为KSZ9031千兆以太网PHY芯片移植LwIP协议栈驱动的完整过程。从硬件连接配置、Vivado工程设置到LwIP库的深度修改与调试,分享了解决PHY识别、自协商及性能优化等关键问题的实战经验,助力开发者实现稳定的千兆网络连接。

honey的博客 1104

二分查找有序数组中某个数的所在范围 Search for a Range

题目源自于leetcode。二分查找题。 题目:Given a sorted array of integers, find the starting and ending position of a given target value.Your algorithm's runtime complexity must be in the order of O(log n).If the

LUCKYOJ 3589

DiffusionDrive实战:如何用截断扩散模型3个月搞定自动驾驶轨迹规划(附代码)

本文详细介绍了如何利用DiffusionDrive截断扩散模型,在三个月内快速构建端到端的自动驾驶轨迹预测系统。内容涵盖从环境搭建、数据处理、模型架构解析到训练调参和推理优化的完整实战流程,并提供了关键代码示例,旨在帮助开发者高效实现高质量的自动驾驶轨迹规划。

weixin_35578748的博客 147

通讯模块_三菱IQ-R PLC串口通讯模块RJ71C24进行Modbus-RTU通讯

在日常的选型中,很多电气工程师咨询我,三菱iQ-R系列有没有Modbus通讯模块,我在这里可以肯定的回复您,这个肯定是有的;我们共有三种可以选择分别是RJ71C24、RJ71C24-R2、RJ71C24-R4。RJ71C24系列支持MC协议通信、通信协议通信、无顺序协议通信、双向协议通信全、MODBUS通信。当我帮助他们选型之后,他们在使用的时候,又是一头雾水。那么今天我抽一些时间讲解一RJ71...

weixin_39878549的博客 9271

Leetcode 34. 在排序数组中查找元素的第一个和最后一个位置 c#

今天上线看见了新的版块,应该是学习计划之类的,打开了一个 第一天是二分查找类型 给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target,返回 [-1, -1]。 进阶: 你可以设计并实现时间复杂度为 O(log n) 的算法解决此问题吗? 示例 1: 输入:nums = [5,7,7,8,8,10], target = 8 输出:[3,4] 示例 2: 输入:nums = [5,7,7,8,8,10], ta

LiCcCcCcccCcc的博客 399

一生一芯——用RTL实现最简单的处理器NPC(南大数逻计组RV32ICPU) 代码及思考参考

本文介绍自己前期用Verilog编写的基于RV32I指令集的CPU,个人认为是最简单最易懂的版本(即没做什么优化,即代码很水,没有考虑一些奇怪的情况,只适用简单指令序列,即题目所示最简单的处理器),适合新手练手Verilog以及了解简单CPU的运行过程。本文基于一生一芯,利用Verilator进行仿真,并用gtkwave查看波形,不了解verilator和gtkwave的可以看前几篇文章。

long0_o的博客 3310

AI落地成败关键:从模型精度到真实采用率的实战路径

AI项目失败往往不在技术层面,而在于缺乏真正的业务采用(Adoption)——即活生生的人是否愿意、习惯并持续使用系统。其本质是组织行为工程,需融合目标对齐(Alignment)、以人为中心的设计(Design for People)、权责共担的所有权机制(Ownership)、有业务目的的精度取舍(Precision with Purpose),以及可感知的透明度(Transparency)。这些并非抽象原则,而是可测量、可归因、可优化的落地切口,直接决定AI能否从实验室走向晨会、报销单与客服耳机。本文聚

weixin_30940783的博客 541

立项书8分钟定生死?手把手教你用ChatGPT辅助打造高水平申报书,让评审专家一看就想打高分!

宏大叙事、空话堆砌只会让评审绕晕,不如聚焦一个具体问题,拿出清晰的研究路径、扎实的设计方案,把“我想做什么、为什么做、打算怎么做”讲明白。对评审来说,关键不在你读了多少,而在你能否看清领域的共识、争议和空白,GPT的作用就在于帮你理清研究脉络,发现问题结构,聚焦那些还没被充分讨论的变量或方法,去提升综述的深度。之前要用到ProcessOn、Draw.io等工具画流程图,现在有了ai虽然方便了,但也需要多次调教,如果嫌麻烦,七哥给大家准备了课题申报常用的流程图,技术路线图,方便大家直接拿来编辑填空使用。

智能AI让学术科研更容易 291

60、拓扑码:从理论到应用

本博客深入探讨了拓扑码的基本理论、构造方法及其在量子计算中的应用。重点介绍了颜色码的拓扑起源、编码量子比特的计算方法、弦算子的构造与性质、边界条件的影响、同调描述以及与统计模型相关的错误阈值分析。同时,还涵盖了拓扑码的历史发展、与其他拓扑码的关系、与凝聚态系统的联系,以及其在激发态和高维中的表现。博客展示了拓扑码在容错量子计算和未来量子信息领域的广阔前景。

o1p2q3r的博客 129

Matlab 检测数值是否属于间断的多个区间内

适用于检测某值是否在很多个区间里。 本人是为了把这部分代码用于判断txt修改,使用newline创建新txt时,遍历的每一行是重写还是写原文的。

weixin_44276743的博客 5242

8、鼠疫流行过程的计算机建模介绍

本博文介绍了一种基于概率细胞自动机和蒙特卡罗方法的计算机模型,用于模拟由大沙鼠传播的鼠疫流行过程。结合GIS和遥感技术,该模型能够分析鼠疫在不同聚居地类型和季节变化下的传播特征,揭示了群落密度、分布及流行接触率对鼠疫传播的影响。研究还验证了模型与自然流行过程的一致性,并探讨了鼠疫在宿主数量低谷时的持续机制。模型为鼠疫防控和流行病研究提供了定量分析工具。

x2y3z4a5b的博客 107

pandas 判断某个变量出于某一个范围

pandas判断某个变量是否出于某一个范围,用between。 比如 df_sat = df[df['sat_length'].between(6, 8)]

weixin_40340586的博客 2191

ximalaya 新xm-sign逆向思路

本文主要介绍目标网站新xm-sign值的逆向思路。仅代表个人理解,如有其他建议可在评论区沟通。声明仅仅记录一下自己的学习方法,不作为其他参考、更不作为商业用途。如有侵犯请联系本人删除。

weixin_66580433的博客 2017

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

判定一个数是否在给定的区间中

判定一个数是否在给定的区间中

Go的全部 822

深度学习工具包 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")

二分查找

二分查找,最基本的算法之一,也是面试中常被考察的重点,因为基本的算法最能反映出一个人的基础是否扎实。本文对二分查找相关题目做一个总结。 (本人第一次面试就被问到了,自面试以来第二个要求手撕的算法,当时没写出来,看到这篇文章,觉得很详细,转载一下) 1. 给定一个有序(非降序)数组A,求任意一个i使得A[i]等于target,不存在则返回-1 这个是最原始的二分查找题目,利用数组的有序特...

请叫我皮皮虾的博客 569

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

在一个两段有序的数组中查找

有一个数组,比如{5,7,8,9,1,3,4},分成两段来看,每段都是有序的,而且左边一段的数字总是大于右边的,实现一个比较有效率的查找算法,下面是我的实现,时间复杂度是O(logn)。 算法描述:使用2分法查找,确定查找区间的算法为:if left    if x mid      findIn(mid, right)   else      findIn(le

feellow的专栏 1048

给定一个数组序列, 需要求选出一个区间, 使得该区间是所有区间中[区间的最小数 * 区间所有数的和]最大

给定一个数组序列, 需要求选出一个区间, 使得该区间是所有区间中经过如下计算的值最大的一个:区间中的最小数 * 区间所有数的和最后程序输出经过计算后的最大值即可,不需要输出具体的区间。如给定序列  [6 2 1]则根据上述公式, 可得到所有可以选定各个区间的计算值: [6] = 6 * 6 = 36;[2] = 2 * 2 = 4;[1] = 1 * 1 = 1;[6,2] = 2 * 8 = 1...

alixiashu的博客 1万+

5.有序数组内查特定数字的范围

思路: 1.首先找到需要查找数字x的左边界 2.其次查到到x的又边界 重点: 查到边界的方法使用二分 注意事项: 在查找x右边界时,mid = (l + r + 1) / 2,是为了防止陷入while的死循环 在查找x左边界时: while(l < r) { int mid = (l + r) / 2; if(num[mid] >= x) r = mid; else l = mid + 1; } 在查找x右边界时:

qq_40958973的博客 297

计算数值区间内某个数字出现的次数

计算数值区间内某个数字 9 出现的次数1 程序的实现2 功能测试3 程序的优化4 添加调试代码··············1 程序的实现vim 9.cgcc 9.c./a.out图片太大,把显示的列数修改为10.2 功能测试测试一个数字内部的 9 能不能准确测定。修改:min = 9938;max = 9939;......./a.outDisplay num:9 in 99...

weixin_33729196的博客 1248

LeetCode解题报告--Search for a Range

题目: Given a sorted array of integers, find the starting and ending position of a given target value. Your algorithm’s runtime complexity must be in the order of O(log n). If the target is not f

gannyee 2601

python numpy元素的区间查找

找了半天,以为numpy的where函数像matlab 的find函数一样好用,能够返回一个区间内的元素索引位置。结果没有。。(也可能是我没找到) 故自己写一个函数,找多维数组下的,在某个区间的元素位置 import numpy as np def find(arr,min,max): pos_min = arr>min pos_max =  arr pos_rst

rentao315的专栏 2万+

LeetCode 327. Count of Range Sum(区间和计数)

原题网址:https://leetcode.com/problems/count-of-range-sum/ Given an integer array nums, return the number of range sums that lie in [lower, upper] inclusive. Range sum S(i, j) is defined as the su

James Pan 3866

hdu 5289 Assignment(给一个数组,求有多少个区间,满足区间内的最大值和最小值之差小于k)

1.区间是一段的,不是断开的哟 2.代码是看着标程写的 3.枚举左端点,二分右端点流程: #include #include #include #define LL long long #define Max(a,b) ((a)>(b)?(a):(b)) #define Min(a,b) ((a)<(b)?(a):(b)) using namespace std; cons

24小时的程序员 5320

判断某个数值存在与一个区间的办法

WCHAR wcValue;如何判断 wcValue 是 0-9 这十个数字中的一个?许多人会写: if(   wcValue>=0x30 && wcValue非常直观,但是不禁有点丑陋。实际上你可以改成:if(   wcValue-0x30但是其中会出现一个问题。 wcValue作为数值将被作为有符号数,wcValue如果小于0x30,计算结果将被认为是一个负数。为了解决

norsd的专栏 1万+
上一篇: Longest Consecutive Sequence 从无序数组中找最长的连续数字 @LeetCode
下一篇: Subsets II 求有重复元素的集合的子集 @LeetCode
chiiis
博客等级 码龄14年 422粉丝 429原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值