【滑动窗口与双指针】学习记录

力扣热题100刷题笔记[python] 力扣100刷题题解 阅读详情

是 【灵茶山艾府】佬的题单

一、定长滑动窗口

定长滑动窗口,每次移动窗口时移除窗口旧尾部元素的贡献,添加窗口新头部元素的贡献。

1456. 定长子串中元音的最大数目

板子,每次移动窗口时若新头部元素为元音则计数加 1 1 1,若旧尾部元素为元音则计数减 1 1 1。

643. 子数组最大平均数 I

板子。

1343. 大小为 K 且平均值大于等于阈值的子数组数目

板子。

2090. 半径为 k 的子数组平均值

注意窗口的长度是 2 k + 1 2k+1 2k+1,不保证小于等于数组总长度 n n n。

2379. 得到 K 个黑块的最少涂色次数

转化为“黑色块最多(白色块最少)的窗口”。

1052. 爱生气的书店老板

窗口内全 0 0 0,每次移动窗口时若新头部元素为 1 1 1 则加上对应贡献,若旧尾部元素为 1 1 1 则减去对应贡献。

2841. 几乎唯一子数组的最大和

用 map 和一个计数器维护窗口内互不相同的元素的个数,另一个计数器维护窗口内元素和。满足“有至少 m m m 个互不相同的元素”时用当前窗口内元素和更新答案。

下一题同理,互不相同元素数等于 k k k 时更新答案。

1423. 可获得的最大点数

只拿两头的 k k k 张转化为不拿中间的 n − k n-k n−k 张,实际上是求长度为 n − k n-k n−k 的窗口的最小元素和。

1652. 拆炸弹

维护窗口元素和后赋值给对应位置即可,使用取模计算循环性。

1461. 检查一个字符串是否包含所有长度为 K 的二进制子串

注意到 k ≤ 20 k\leq20 k≤20,则二进制子串可以转化为十进制整数从而开桶计数。移动窗口时删掉最高位并填上新的最低位。

2134. 最少交换次数来组合所有的 1 II

一开始看错题了,以为是相邻元素交换,我检讨。

窗口长度为 1 1 1 的总个数,因为窗口中每一个 0 0 0 都可以通过一步交换变成 1 1 1,所以实际上是计算窗口中 0 0 0 的最少个数。

1297. 子串的最大出现次数

注意到较短的子串实际上被较长的子串完全包含,所以事实上只需要计算长度为 minSize 的子串。

用哈希表维护子串的出现个数(实际上用了 map 😋)。

2653. 滑动子数组的美丽值

因为数组元素值范围极小,所以可以用一个桶维护窗口内元素的出现次数,通过从小到大遍历桶找到第 x 小整数。

1888. 使二进制字符串字符交替的最少反转次数

将字符串复制一份拼接成长度为 2 n 2n 2n 的字符串,然后用长度为 n n n 的滑动窗口维护类型 1 的循环性。

注意到每个窗口有两种交替方式,即 10101... 和 01010...,两种方式所需的翻转次数之和为 n n n。如果固定整个串的奇数位为 1 1 1,偶数位为 0 0 0 作为一种方式,则很方便在窗口移动时更新翻转次数,顺便计算出另一种方式所需的次数。

567. 字符串的排列

注意到字符串 a 是字符串 b 排列当且仅当 a 与 b 中字母的种类和个数相同。开一个 map 维护窗口中各个字母的出现个数,数据范围完全支持我们每次移动窗口时遍历 26 26 26 个字母判断出现个数是否与 s1 相同。

438. 找到字符串中所有字母异位词

和上一题一样的思路。

30. 串联所有单词的子串

把 s 按 words 中字符串的长度分割成字符串数组,以 words 的大小作为滑动窗口的大小,以字符串为比对单位,按照前两题的思路用 map 统计字符串出现个数从而判断串联子串。

由于不同的分割点会分割出不同的字符串数组,所以枚举 s 中前 words[i].length 个字母作为分割的起始点。

2156. 查找给定哈希值的子串

其实很板,移动的时候把最后一位对应的哈希值减去就行。

2953. 统计完全子字符串

每个字符恰好出现 k k k 次,所以移动窗口的大小是 k k k 的整数倍。

对于条件 1 1 1,移动窗口移动的时候用桶和计数器维护一下有多少少于 k k k 个的,有多少多于 k k k 个的。对于条件 2 2 2,计数一下相差大于 2 2 2 的组数。然后当三个计数器都为 0 0 0 时统计一个答案。

1016. 子串能表示从 1 到 N 数字的二进制串

和 1461 差不多。


未完待续

Oracle-如何修复undo坏快 undo出现坏快,导致数据库宕机,无法启动 阅读详情

相关推荐

沈阳计算机研究所复试,沈阳计算所复试试题附答案.doc

沈阳计算所复试试题附答案目录数据结构1200612007220085200914操作系统16200616200718200818200919组成原理20200620200720200821200921经典算法22数据结构2006数据结构部分(共25分,第1题10分,第2题15分)在(下图)所示的有向图中:v1 v2v4 ...

weixin_42511053的博客 861

双指针算法------同向双指针

由于要求最小子串,这个时候还需要继续将l向后移动,如果还是包含,更新此时的子串,然后再向后移动。如果l向后移动的时候发现此时窗口不包含子串了,这个时候就和上面步骤一样,需要将r向后移动,重复之前的一个步骤和思想。在开始时初始化两个指针l、r,然后r开始向后移动,这个时候l和r之间就形成了一个“窗口”,然后判断这个窗口中是否包含需要的字符串,如果不包含,这个时候r要继续向后移动,如果移动到某一个位置,窗口中包含了需要的字符,先记录一下此时的子串。这道题是困难题,我也是直接看的题解。

日暮南城故里的博客 410

Ubuntu 24.04中文输入法终极指南:从安装到疑难排解

本文是Ubuntu 24.04中文输入法的完整指南,详细介绍了如何通过图形界面或命令行安装和配置Intelligent Pinyin输入法。内容涵盖IBus框架的运作原理、输入法快捷键调校、模糊音设置,并重点解决了Qt应用无法输入中文的疑难问题,最后提供了Fcitx5备选方案及常见故障的排解方法。

weixin_29294975的博客 1241

Leetcode打卡笔记5-双指针、滑动窗口

打卡学习了双指针和滑动窗口的基本知识,并通过相关的Leetcode题目进行了训练,这里做下记录进行总结。双指针指的是在遍历元素的过程中,不是使用单个指针进行访问,而是使用两个指针进行访问,从而达到相应的目的,其需要保证数组是有序单调的,才可以使用。优势在于可以将时间复杂度降低到o(n)双指针按类别大致可以分为对撞指针、快慢指针以及分离双指针三类。

spf991022的博客 371

kettle写doris操作

文件在目录:doris-master\extension\kettle\assemblies\plugin\target\doris-stream-loader-plugins-9.4.0.0-343.zip。官方提供了doris stream load插件,下载源码编译后放到kettle的插件目录即可使用。地址:https://github.com/apache/doris.git。注意:需要doris插件或者kettle转换生成模板的私聊博主。使用PDmaner同步业务库生成建表语句。

weixin_44449054的博客 3029

深度探索:非线性随机森林(Nonlinear Random Forest,NL-RF)原理及应用

非线性随机森林(NL-RF)旨在通过结合集成方法与高级技术来捕捉和建模数据中的非线性关系,从而改善传统随机森林在处理复杂非线性数据结构时的表现。

qq_51320133的博客 2066

7.30学习日志

摘要:本文总结了双指针算法在LeetCode常见题目中的应用,包括四种典型用法:1)快慢指针(链表环检测);2)左右指针(有序数组查找);3)滑动窗口(子串问题);4)分离指针(数组合并)。针对128/283/141/167/3/88等题目给出具体解法,如用哈希集合实现最长无重复子串(O(n)时间复杂度),快慢指针检测环形链表等。双指针能有效降低时间复杂度至O(n),但需注意边界条件处理。每种方法均配有典型例题和代码实现,展示了该技术在数组、链表等问题中的高效应用。

2301_80146401的博客 463

三极管共集电极放大电路详解:射极跟随器的原理、计算与应用

三极管放大电路是模拟电子技术的基石,常见组态包括共发射极、共基极和共集电极。其中共集电极电路因输入电阻大、输出电阻小、电压增益接近1的特性,常被用作射极跟随器,在信号缓冲、级间隔离和低阻抗负载驱动等场景中发挥关键作用。其核心价值并非电压放大,而是完成阻抗变换,将高内阻信号源转换为低内阻输出,同时保持信号幅值基本不变。理解其静态工作点计算与动态参数推导(如电压增益、输入输出电阻)是设计实用电路的前提。本文结合12V电源下的具体设计实例和仿真验证,梳理了从电路识别、参数计算到工程实践的完整流程,并指出常见设计误

weixin_29193259的博客 367

Javascript每天一道算法题(十一)——滑动窗口最大值_困难(中等)

javascript每天一道算法题(十一)——滑动窗口最大值_困难(中等)

weixin_44784401的博客 263

【3天快速入门WPF】1-从最简单的xaml开始

首先我们要知道xaml语法中声明即定义,意思就是“见到元素就相当于创建实例”,MainWindow.xaml的主干是一个元素里包含着一个 元素。这段程序就是在定义一个Window类的实例,这个实例的一个组成部分是一个Grid类的实例。

Zy100Papa的博客 1623

【WRF理论第十四期】 VEGPARM.TBL 文件详解

WRF 读取 VEGPARM.TBL 文件

WW、forever的博客 576

LeetCode100-3无重复字符的最长子串(滑动窗口)

Python基础好像会了又好像没会,所有我直接开始刷leetcode一边抄样例代码一边学习吧。本系列文章用来记录学习中的思考,写给自己看的,也欢迎大家在评论区指导~您的每一条评论都会让我更有学习的动力。只会打暴力,基础一团糟,明天再学吧老铁,别真学会了。

2301_79467953的博客 1205

HDMI接口及其在编程中的应用

在编程中,我们可以使用HDMI接口来控制和管理连接到计算机的HDMI设备。本文将介绍HDMI接口的基本原理以及如何在编程中使用HDMI接口。在编程中,我们可以使用HDMI接口来控制和管理连接到计算机的HDMI设备。本文介绍了HDMI接口的基本原理,并提供了使用Python编程语言和相关库实现HDMI接口应用的示例代码。我们可以使用编程语言提供的音频库来生成和播放音频,并将其通过HDMI接口输出到连接的设备上。我们可以使用编程语言提供的音频库来生成和播放音频,并将其通过HDMI接口输出到连接的设备上。

CodeByte的博客 802

字母异位词的妙用

之前的两节讲解了滑动窗口类问题的模式解法,相信大家对该类题型已不陌生**。**今天将继续完成一道题目,来进行巩固学习。 01、题目分析 第438. 找到字符串中所有字母异位词 给定一个字符串 s 和一个非空字符串 p,找到 s 中所有是 p 的字母异位词的子串,返回这些子串的起始索引。 字符串只包含小写英文字母,并且字符串 s 和 p 的长度都不超过 20100。 说明: 字母异位词指字母相同,但排列不同的字符串。 不考虑答案输出的顺序。 示例 1: 输入:s: "cbaeb.

Google大神 214

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

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

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

【统刷】专题完结,题单汇总

【统刷】专题完结,题单汇总:十八个专题,共92道题目,带你算法入门

tan_run的博客 572

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

代码随想录+leetcode学习笔记

代码随想录

weixin_45746058的博客 649

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

代码随想录算法训练营第二天| 209.长度最小的子数组 、59.螺旋矩阵II 、区间和、开发商购买土地、总结

209.长度最小的子数组209.长度最小的子数组拿下滑动窗口!| LeetCode 209 长度最小的子数组题目建议:理解滑动窗口状态:暴力法和滑动窗口发都没有想到,好菜🥲2024/2/22时间有点晚了,睡觉要紧,下次一定。2025/2/9迟到的总结数组的经典题目:二分法双指针法滑动窗口模拟前缀和基本可以说掌握了上述方法,408的数据结构算法题基本会全部覆盖,部分可能会用到后面学习的链表等数据结构。

m0_64615322的博客 1019

Day02 977.有序数组的平方,209.长度最小的子数组,59螺旋矩阵II,总结

1.二分查找:使用二分查找算法,每次取数组的中间元素与目标值比较,根据比较结果调整搜索范围,直到找到目标值或搜索范围为空。2.移除元素使用双指针,一个指针遍历数组,另一个指针指向新数组的下一个位置。当遍历指针指向的元素不等于给定值时,将其赋值给新数组指针指向的位置,并移动新数组指针。3.有序数组的平方由于负数平方后会变为正数,且可能大于之前的正数,因此不能直接平方后排序。

luo_12230527的博客 1521

代码随想录算法训练营第二天| 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II

刷题建议与debug今日学习文章链接和视频链接Python菜鸟教程

m0_46266264的博客 534

代码随想录算法训练营day02 | 977.有序数组的平方 、209.长度最小的子数组、59.螺旋矩阵II

leecode题目:977、209、59

weixin_46081231的博客 318

代码随想录算法训练营第二天 | 0977. 有序数组的平方、0209. 长度最小的子数组、0059. 螺旋矩阵 II

代码随想录算法训练营第二天

cxiaoyang_的博客 567

算法刷题总结(全)

总结的各类基础经典算法集锦,按照题型进行分类,多练习!

weixin_45564943的博客 870

代码随想录

int l = 0;break;return res;

weixin_43038557的博客 479

算法笔记(自用)

断断续续刷了不少的leetcode题目了,但是算法一点长进都没有,还是一个小白(简单题重拳出击,中等题唯唯诺诺,困难题看不懂);究其根本原因,就是自己没有好好认真的学习,既缺乏系统性的学习,也没有做记录,刷过了就忘了,同类题型不会做。现将自己刷题学习的过程记录下来,留做以后翻阅,内容比较混乱,自用。

SyntaxEr的博客 155

LeetCode热题100——刷题记录(不定期更新)

你好,我是杨十一,一名热爱健身的程序员在Coding的征程中,不断探索与成长此系列文章用于记录我在学习LeetCode热题100过程中的总结和收获愿与诸君共同探讨,在代码世界里携手共进,攻克难题,提升自我。

Young_4的博客 356

代码随想录算法训练营第一天|数组02

滑动窗口,前缀和。

2401_83162282的博客 215
上一篇: Hash(哈希)选做
Wu_while
博客等级 码龄6年 50粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值