[Leetcode] 27. Remove Element

《探秘 BME680温度湿度气压气体传感器模块:环境感知的卓越之选》:此文为AI自动生成 BME680 是一款由博世公司推出的集成环境传感器模块,在环境监测和物联网等领域中发挥着重要作用。它能够同时测量温度、湿度、气压和气体浓度等多个环境参数,为各种应用提供准确可靠的环境数据。该模块采用小巧的封装形式,便于集成到各种设备中,无论是智能家居、可穿戴设备还是工业监测系统,都能轻松适配。例如,在智能家居系统中,BME680 模块可以监测室内环境参数,如温度、湿度、气压和空气质量等。通过与智能家居控制器或智能手机应用程序的连接,用户可以实时了解室内环境状况,并根据需要进行调整。 阅读详情

Description:
Given an array and a value, remove all instances of that value in-place and return the new length.

Do not allocate extra space for another array, you must do this by modifying the input array in-place with O(1) O ( 1 ) extra memory.

The order of elements can be changed. It doesn’t matter what you leave beyond the new length.

Example:

Given nums =[3,2,2,3], val = 3,

Your function should return length = 2, with the first two elements of nums being 2.

Language: C++

解法一:
虽然题目要求in-place,但是可以先考虑如果不要求in-place的话,可以怎么做。解法一没有in-place。思路是遍历一遍数组,把不等于val的数存到新申请的vector中,那么这就是新的数组了,它的size就是不等于val的元素的个数。
Time: O(n) O ( n )
Space: O(n) O ( n )

class Solution {
public:
    int removeElement(vector<int>& nums, int val) {
        int res = 0;
        vector<int> arr;
        for(int i = 0; i < nums.size(); i++){
            if(nums[i]!=val)
                arr.push_back(nums[i]);
        }
        for(int i = 0; i < arr.size(); i++)
            nums[i] = arr[i];
        res = arr.size();
        return res;
    }
};

解法二:
基本思想:运用两个指针。相当于用i来遍历,j来控制使得[0, j)范围内的数都不等于val。弄清楚含义以后,可以知道,j初值可设为0。(也就是如果含义是j来控制使得[0, j]范围内的数都不等于val,那么j的初值就应该设为-1) 当遍历到的数不等于val时,满足条件,将nums[i]赋给nums[j],然后j++。与下面解法三不同的是:这里不论nums[i]是否与val相等,i都要向前加1。
要仔细读题,题目中“The order of elements can be changed. It doesn’t matter what you leave beyond the new length.”说不care有效长度后面的元素是什么,因此不用考虑数组后面无效的部分,只需要把前面解决就行,也就是把不等于val的数都挪到前面就行,后面是什么样的不用管。不过我还是给出了考虑到in-place的同时使得数组变成一个不含val的数组,也就是真正意义上把val给删除了。
Time: O(n) O ( n )
Space: O(1) O ( 1 )

class Solution {
public:
    int removeElement(vector<int>& nums, int val) {
        int res = 0;
        int j = 0;//保证在[0...j)的元素都不包含要删除的val
        for(int i = 0; i < nums.size(); i++){
            if(nums[i] != val)//把不等于val的往前挪,最后遍历完后erase后面的部分
                nums[j++] = nums[i];
        }
        res = j;//最后一次j++了之后变成了现在的j,所以不等于val的范围在[0,j-1]共j个元素 这里注意哦!

        nums.erase(nums.begin()+j-1, nums.end());//*题目说超过有效范围的部分不care是什么,这里我进一步把后面的给删了,这一句在这道题是不必须的
        return res;
    }
};

算法细节:

  • 关键点在于首先搞清楚i,j或其他语句的含义,然后之后的代码一定严格遵循这些含义
  • 在用vector的erase方法的时候,要注意几种错误写法:

    nums.erase(j, nums.end());
    //错误原因:j是int, end是迭代器
    nums.erase(j, nums.size());
    //错误原因:j是int, size是sizetype类型,这里传入的是j的引用,强制转换size也不行

    特别要注意,erase可以删除某个position的元素(一个参数),或者某个范围内的元素(两个参数,且是左闭右开,[first,last))
    正确用法示例:(来源:Resource: cplusplus)

    // erase the 6th element
    myvector.erase (myvector.begin()+5);
    
    // erase the first 3 elements:
    myvector.erase (myvector.begin(),myvector.begin()+3);

解法三:
基本思想:两个对撞指针。
这种方法尤其适合数组中需要删除的val值元素很少的时候。因为用解法二,我们有可能进行了多次不必要的交换。
思路:(来源:Leetcode Solution)
When we encounter nums[i] = val, we can swap the current element out with the last element and dispose the last one. This essentially reduces the array’s size by 1.
当从左向右遍历到的nums[i]等于val时,我们可以将它与最后一个元素交换,然后再dispose掉最后一个元素。这一步也把数组的size减了1。
Note that the last element that was swapped in could be the value you want to remove itself. But don’t worry, in the next iteration we will still check this element.
需要注意的是当最后一个元素被换到当前位置的时候,有可能还是一个需要删除的数,因此我们下一趟的判断还要对这个元素进行判断,也就是遍历指针还不能往前挪。
Time: O(n) O ( n )
Space: O(1) O ( 1 )

public int removeElement(int[] nums, int val) {
    int i = 0;//保证[0,i)范围内的值都是有效的,即不等于val的
    int n = nums.length;
    while (i < n) {
        if (nums[i] == val) {
            nums[i] = nums[n - 1];
            // reduce array size by one
            n--;//记得把size减1
        } else {
            i++;//只有在当前的nums[i]!=val的情况,i才向前+1
        }
    }
    return n;
}

算法细节:

  • 注意到我们的这个解法只有在当前的nums[i]!=val的情况,i才向前+1,这是与解法二不同的地方,因为我们要保证[0,i)范围内的值都是有效的,即不等于val的(永远stick to 语句的含义),这也是我们用while不用for的原因。
  • 启发:我在看到delete或者remove的时候,总是觉得一定要把等于val的值真正的从数组中除掉,但实际上题目并没有要求,那么怎么才能体现有效部分的长度呢?第一种方法是利用语句含义,也就是解法二中的保证在[0…j)的元素都不包含要删除的val,和解法三中的保证[0,i)范围内的值都是有效的;第二种是当不满足有效条件时,即当前的值等于val时,n减1,n的初值为数组长度。
从Gotham到Foundry:拆解Palantir三大产品线,看它如何用‘本体’统一企业数据与AI 本文深入解析Palantir的三大产品线Gotham、Foundry和Apollo,揭示其如何通过独特的'本体'架构实现企业数据与AI的无缝融合。从国防情报到商业决策,Palantir的产品架构展现了强大的数据整合与AI赋能能力,为企业构建数字孪生提供革命性解决方案。 阅读详情

相关推荐

Leetcode27.Remove Element

27.Remove Element 题目 原题链接:https://leetcode.com/problems/remove-element/ 题目内容: Given an array nums and a value val, remove all instances of that value in-place and return the new length. ...

chenguiyuan1234的博客 211

STM32驱动MG996R舵机的PWM控制与闭环原理

舵机是一种典型的模拟闭环伺服系统,其核心是通过电位器反馈实现角度位置的自动校正。工作原理基于负反馈控制:目标PWM脉宽决定期望角度,电位器输出实时反馈实际角度,控制电路计算偏差并驱动电机消除误差。该机制赋予舵机强带载能力与抗干扰性,是机器人、云台、智能执行器等场景的关键执行单元。在嵌入式开发中,STM32通过定时器生成标准20ms周期、0.5–2.5ms脉宽的PWM信号,需严格遵循电气规范,并解决PA15引脚SWJ复用冲突、定时器重映射及CCR精度计算等关键问题。本文深入解析MG996R舵机控制全流程,涵盖

weixin_42600407的博客 559

Leetcode 27. Remove Element

题目描述:移除数组中数位val的元素,并返回一个长度,前长度个元素不包括该元素val. 题目链接:Leetcode 27. Remove Element 思路和前面一题的思路一样,那就是判断是否相等,然后从0下标开始置位移动。 代码如下 class Solution { public int removeElement(int[] nums, int val) { i...

Za七杂⑧ 227

2021-03-08 使用SPDK部署NVMe over TCP

NVMe-oF Target入门指南 SPDK NVMe over Fabrics Target是一个用户空间应用程序,通过以太网,Infiniband或光纤通道等结构呈现块设备,SPDK目前支持RDMA和TCP传输。 本文将在已经编译好SPDK的基础上演示如何使用SPDK搭建NVMe over TCP,前提是您已经将一块NVMe硬盘挂载到linux系统中。 如果您想获取有关SPDK更详细的信息,请参考 官方文档。 演示过程的Host主机的ip地址是192.168.0.21,Target主机的ip地址是19

Pancras的博客 2843

DISK配置服务器软RAID工作任务(RAID1+BITLOCKER)-winserver4

DISK配置服务器软RAID工作任务(RAID1+BITLOCKER)-winserver4

新时代先锋的博客 7299

leetcode 27 Remove Element

27 Remove Element描述代码思考 描述 Given an array nums and a value val, remove all instances of that value in-place and return the new length. Do not allocate extra space for another array, you must do this b...

u010659877的专栏 216

【四足机器人项目实战】四足机器人支撑腿反作用力规划之VMC解耦控制方法

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言一、基于模型的工作空间控制框图二、原理三、缺点 前言 认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长! 本文先对未简化的动力学模型规划反作用力+运动学模型雅可比+虚功原理规划关节扭矩方法做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章 提示:以下是本篇文章正文内容 一、基于模型的工作空间控制框图 . . 二、原理 基于机器人的动力学模

qq_35635374的博客 6597

leetcode解题之 27. Remove Element Java版

27. Remove Element Given an array nums and a value val, remove all instances of that value in-place and return the new length. Do not allocate extra space for another array, you must do this by modify...

he_zhen_的博客 309

企业AI数据资产评估的自动化工具:AI应用架构师的使用指南

在AI驱动的企业数字化转型中,数据资产是支撑模型训练、业务决策的核心燃料。然而,80%的AI项目失败源于数据问题——低质量数据导致模型偏差、未评估的风险引发合规危机、价值不明确的数据浪费资源。手动数据资产评估效率低、易出错,无法满足规模化AI应用需求。本文将以AI应用架构师的视角,拆解企业数据资产评估的核心逻辑,用"餐厅选食材"的生活化比喻解释复杂概念,结合自动化工具的技术原理与实战案例,教你如何从0到1搭建数据资产评估体系。无论是数据质量检测、价值量化还是风险防控,你都能找到可落地的工具方案与实践步骤。

2502_91592937的博客 1629

YOLOv4目标检测算法——通俗易懂的解析

YOLOv4目标检测算法——通俗易懂的解析

chase 7135

[LeetCode] 27.Remove Element

[LeetCode] 27.Remove Element 题目描述 解题思路 实验代码 题目描述Given an array and a value, remove all instances of that value in-place and return the new length.Do not allocate extra space for another array, you must

user_name_is_so_long的博客 222

Qt C++ HTTP 调用通义千问大模型 X 学术论文润色工具(SCI 格式适配)

请求地址:`https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation`;| Windows | 打包时携带 `Qt6Network.dll`/`libcrypto-1_1-x64.dll` 等依赖;| Linux | 安装 `libssl-dev` 和 `libcurl4-openssl-dev`;| API 调用失败 | 检查 API-KEY 是否有效;

寒寒豆豆软件公司的博客 104

LeetCode 27 Remove Element题解

27. Remove Element Total Accepted: 158828Total Submissions: 434799Difficulty: EasyContributors: Admin Given an array and a value, remove all instances of that value in place and retu

赞美月亮的专栏 910

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

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

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

LeetCode 27.Remove Element

LeetCode 27.Remove ElementDescription: Given an array and a value, remove all instances of that value in-place and return the new length. Do not allocate extra space for another array, you must

My Blog 121

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

LeetCode Notes_#27 Remove Element

LeetCode Notes_#27 Remove Element Contents 题目思路和解答思路解答 题目 Given an array nums and a value val, remove all instances of that value in-place and return the new length. Do not allocate extra...

baji9701的博客 158

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【LeetCode】解题27:Remove Element

LeetCode解题 27:Remove Element Problem 27: Remove Element [Easy]解题思路Solution (Java) Problem 27: Remove Element [Easy] Given an array nums and a value val, remove all instances of that value in-place and...

Fayedily的博客 247

27. Remove Element【leetcode】

27. Remove Element【leetcode】 Given an array and a value, remove all instances of that value in place and return the new length. Do not allocate extra space for another array, you must do this i...

diaocongdie2176的博客 97

LeetCode记录之27——Remove Element

LeetCode记录之27——Remove Element 这道题跟26题很类似,并且有官方的答案。看了官方的答案之后发现写得特别巧,自己做的题太少思路太窄。有意思的是我的算法的时间复杂度是O(N^2),官方的是O(N),我的实际运行时间还少了2ms。 iven an array and a value, remove all instance...

三分自留地 133

Leetcode【27】Remove Element

leetcode上一道简单题27.移除元素,给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。 比较常规的想法 class Solution(object): def removeElement(self, nums, val): """ :type nums: List[int] ...

ssjdoudou的博客 7482

LeetCode | 27. Remove Element

Description Given an array nums and a value val, remove all instances of that value in-place and return the new length. Do not allocate extra space for another array, you must do this by modifying the...

susielau1998的博客 169

LeetCode 27. Remove Element

问题链接 LeetCode 27. Remove Element 题目解析 删除数组中等于特定值的元素。 解题思路 特简单题。遍历一次,直接计数即可。大都一样的解法,也可参考https://leetcode.com/problems/remove-element/solution/。 参考代码 class Solution { public: int removeElement(vecto...

weixin_30301449的博客 85

leetcode-27. Remove Element

leetcod-27. Remove ElementGiven an array and a value, remove all instances of that value in place and return the new length. Do not allocate extra space for another array, you must do this in place wit

myan991的博客 228

[勇者闯LeetCode] 27. Remove Element

[勇者闯LeetCode] 27. Remove ElementDescription Given an array and a value, remove all instances of that value in place and return the new length. Do not allocate extra space for another array, you mu

fanguzhai的博客 264

LeetCode刷题:27. Remove Element

LeetCode刷题:27. Remove Element 原题链接:https://leetcode.com/problems/remove-element/ Given an array nums and a value val, remove all instances of that value in-place and return the new length. Do not a...

梅森上校的博客 业精于勤荒于嬉,形成于思毁于随。 256

leetcode: 27. Remove Element

leetcode: 27. Remove Element 方法一:暴力,时间复杂度O(n^2) class Solution { public: int removeElement(vector<int>& nums, int val) { int n = nums.size(); for (int i = 0; i < n; i++) { if (nums[i] == val) { f

LSK的博客 4589
上一篇: [Leetcode] 167. Two Sum II - Input array is sorted
下一篇: [Leetcode] 26. Remove Duplicates from Sorted Array
Peggy_Chang
博客等级 码龄11年 21粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值