力扣1502. 判断能否形成等差数列(Array数组详解)

超详细MySQL 8.0安装与配置 MySQL的安装与配置 还不会安装MySQL的同学们,还不会配置MySQL的同学们,赶紧按照下面步骤操作起来,超详细安装步骤如下: 进入MySQL官网 1、点击download 2、点击MySQL Community Server 3、选好选项点击go to download page 4、点击download 5、点击no thanks,just start my download 6、选Server only,点击Next 7、点击Execute 8、点击 阅读详情

来源:1502. 判断能否形成等差数列 - 力扣(LeetCode)

题目

给你一个数字数组 arr 。

如果一个数列中,任意相邻两项的差总等于同一个常数,那么这个数列就称为 等差数列 。

如果可以重新排列数组形成等差数列,请返回 true ;否则,返回 false 。

示例 1:

输入:arr = [3,5,1]
输出:true
解释:对数组重新排序得到 [1,3,5] 或者 [5,3,1] ,任意相邻两项的差分别为 2 或 -2 ,可以形成等差数列。

示例 2:

输入:arr = [1,2,4]
输出:false
解释:无法通过重新排序得到等差数列。

提示:

  • 2 <= arr.length <= 1000
  • -10^6 <= arr[i] <= 10^6

详解 

思路

此题非常简单,只需将数组排序,再计算一个公差即可判断是否为等差数列 

class Solution {
    public boolean canMakeArithmeticProgression(int[] arr) {
        //对数组进行sort排列
        Arrays.sort(arr);
        int diff = arr[1] - arr[0];
        for (int i = 2; i < arr.length; i++) {
            if (arr[i] - arr[i - 1] != diff) {
                return false;
            }
        }
        return true;
    }
}

 Arrays工具类(常用方法详解)

Arrays类提供了许多用于操作数组的静态方法。以下是一些常见的方法及其示例:

1. 排序
  • sort(T[] a): 对数组进行升序排序。

    int[] arr = {5, 2, 8, 3, 1};
    Arrays.sort(arr);
    System.out.println(Arrays.toString(arr)); // 输出: [1, 2, 3, 5, 8]
    
  • sort(T[] a, Comparator<? super T> c): 根据指定的比较器对数组进行排序。

    String[] names = {"Alice", "Bob", "Charlie"};
    Arrays.sort(names, Comparator.comparingInt(String::length));
    System.out.println(Arrays.toString(names)); // 输出: [Bob, Alice, Charlie]
    
  • parallelSort(T[] a): 使用并行排序对数组进行升序排序。

    int[] arr = {5, 2, 8, 3, 1};
    Arrays.parallelSort(arr);
    System.out.println(Arrays.toString(arr)); // 输出: [1, 2, 3, 5, 8]
    
2. 搜索
  • binarySearch(T[] a, T key): 使用二分搜索在升序数组中搜索指定的元素。

    int[] arr = {1, 2, 3, 5, 8};
    int index = Arrays.binarySearch(arr, 3);
    System.out.println(index); // 输出: 2
    
  • binarySearch(T[] a, T key, Comparator<? super T> c): 使用二分搜索在升序数组中搜索指定的元素,使用指定的比较器。

    String[] names = {"Alice", "Bob", "Charlie"};
    int index = Arrays.binarySearch(names, "Bob", Comparator.naturalOrder());
    System.out.println(index); // 输出: 1
    
3. 复制
  • copyOf(T[] original, int newLength): 复制指定的数组,返回一个新数组,长度为newLength。

    int[] arr = {1, 2, 3, 4, 5};
    int[] newArr = Arrays.copyOf(arr, 3);
    System.out.println(Arrays.toString(newArr)); // 输出: [1, 2, 3]
    
  • copyOfRange(T[] original, int from, int to): 复制指定范围的数组,返回一个新数组。

    int[] arr = {1, 2, 3, 4, 5};
    int[] newArr = Arrays.copyOfRange(arr, 1, 4);
    System.out.println(Arrays.toString(newArr)); // 输出: [2, 3, 4]
    
4. 转换
  • asList(T... a): 返回一个由指定数组支持的固定大小的列表。

    String[] names = {"Alice", "Bob", "Charlie"};
    List<String> list = Arrays.asList(names);
    System.out.println(list); // 输出: [Alice, Bob, Charlie]
    
  • toString(T[] a): 返回数组的字符串表示形式。

    int[] arr = {1, 2, 3, 4, 5};
    String str = Arrays.toString(arr);
    System.out.println(str); // 输出: [1, 2, 3, 4, 5]
    
5. 填充
  • fill(T[] a, T val): 用指定的值填充整个数组。

    int[] arr = new int[5];
    Arrays.fill(arr, 7);
    System.out.println(Arrays.toString(arr)); // 输出: [7, 7, 7, 7, 7]
    
  • fill(T[] a, int fromIndex, int toIndex, T val): 用指定的值填充数组的指定范围。

    int[] arr = {1, 2, 3, 4, 5};
    Arrays.fill(arr, 1, 4, 0);
    System.out.println(Arrays.toString(arr)); // 输出: [1, 0, 0, 0, 5]
    
6. 其他
  • equals(T[] a, T[] a2): 比较两个数组是否相等。

    int[] arr1 = {1, 2, 3};
    int[] arr2 = {1, 2, 3};
    boolean isEqual = Arrays.equals(arr1, arr2);
    System.out.println(isEqual); // 输出: true
    
  • hashCode(T[] a): 返回数组的哈希码。

    int[] arr = {1, 2, 3};
    int hashCode = Arrays.hashCode(arr);
    System.out.println(hashCode); // 输出: 哈希码
    
  • stream(T[] a): 返回一个顺序流,其元素是数组的元素。

    int[] arr = {1, 2, 3, 4, 5};
    IntStream stream = Arrays.stream(arr);
    stream.forEach(System.out::println); // 输出: 1 2 3 4 5
    
7. 升序排序
  • sort(int[] a): 对整数数组进行升序排序。

    int[] arr = {5, 2, 8, 3, 1};
    Arrays.sort(arr);
    System.out.println(Arrays.toString(arr)); // 输出: [1, 2, 3, 5, 8]
    
  • binarySearch(int[] a, int key): 使用二分搜索在升序数组中搜索指定的元素。

    int[] arr = {1, 2, 3, 5, 8};
    int index = Arrays.binarySearch(arr, 3);
    System.out.println(index); // 输出: 2
8.降序排序
  • Array.sort(arr,Comparator.reverseOrder()):结合自定义的比较器。
Integer[] arr = {5, 2, 8, 3, 1};
        
        // 使用自定义比较器进行降序排序
        Arrays.sort(arr, Comparator.reverseOrder());
        
        System.out.println(Arrays.toString(arr)); // 输出: [8, 5, 3, 2, 1]

需要注意的是,Comparator.reverseOrder()适用于对象数组(如Integer[]),而不适用于基本数据类型数组(如int[])。如果你使用的是基本数据类型数组,可以先将其转换为对象数组,排序后再转回基本数据类型数组,或者使用Java 8的流(Stream)API来实现降序排序。

以下是使用流API对基本数据类型数组进行降序排序的示例:

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        int[] arr = {5, 2, 8, 3, 1};
        
        // 使用流API进行降序排序
        arr = Arrays.stream(arr)
                    .boxed()
                    .sorted(Comparator.reverseOrder())
                    .mapToInt(Integer::intValue)
                    .toArray();
        
        System.out.println(Arrays.toString(arr)); // 输出: [8, 5, 3, 2, 1]
    }
}

  在这个示例中,我们首先将int[]数组转换为IntStream,然后使用boxed()方法将其转换为Stream<Integer>,接着使用sorted(Comparator.reverseOrder())进行降序排序,最后再通过mapToInt(Integer::intValue)和toArray()方法将其转换回int[]数组。

9. 填充多维数组
  • fill(T[][] a, T val): 用指定的值填充整个二维数组。
    int[][] matrix = new int[3][3];
    Arrays.fill(matrix, 7);
    for (int[] row : matrix) {
        System.out.println(Arrays.toString(row)); 
        // 输出: [7, 7, 7]
        //       [7, 7, 7]
        //       [7, 7, 7]
    }
    
10. 排序多维数组
  • sort(T[][] a): 对二维数组的每个子数组进行排序。
    int[][] matrix = {{5, 2, 8}, {3, 1, 4}, {7, 6, 9}};
    for (int[] row : matrix) {
        Arrays.sort(row);
    }
    for (int[] row : matrix) {
        System.out.println(Arrays.toString(row)); 
        // 输出: [2, 5, 8]
        //       [1, 3, 4]
        //       [6, 7, 9]
    }
    
11. 检查数组是否包含某个元素
  • binarySearch(T[] a, T key): 检查数组是否包含某个元素(需先排序)。
    int[] arr = {1, 2, 3, 4, 5};
    boolean contains = Arrays.binarySearch(arr, 3) >= 0;
    System.out.println(contains); // 输出: true
    
12. 使用流进行复杂操作
  • stream(T[] a): 使用流进行复杂操作,例如过滤、映射、归约等。
    int[] arr = {1, 2, 3, 4, 5};
    int sum = Arrays.stream(arr).filter(n -> n % 2 != 0).sum();
    System.out.println(sum); // 输出: 9 (奇数之和)
    
13. 并行流操作
  • parallelStream(T[] a): 使用并行流进行高效处理。
    int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    int sum = Arrays.parallelStream(arr).map(n -> n * 2).sum();
    System.out.println(sum); // 输出: 110 (每个元素乘以2后求和)
    
14. 数组转换为集合
  • asList(T... a): 将数组转换为列表,然后进行集合操作。
    String[] names = {"Alice", "Bob", "Charlie"};
    List<String> list = Arrays.asList(names);
    list.add("David"); // 抛出 UnsupportedOperationException,因为 asList 返回的是固定大小的列表
    
15. 使用setAll和replaceAll
  • setAll(T[] a, IntFunction<T> generator): 使用生成器函数设置数组的所有元素。

    int[] arr = new int[5];
    Arrays.setAll(arr, i -> i * i);
    System.out.println(Arrays.toString(arr)); // 输出: [0, 1, 4, 9, 16]
    
  • replaceAll(T[] a, UnaryOperator<T> operator): 使用操作符替换数组的所有元素。

    int[] arr = {1, 2, 3, 4, 5};
    Arrays.replaceAll(arr, n -> n * 2);
    System.out.println(Arrays.toString(arr)); // 输出: [2, 4, 6, 8, 10]
    
16. 使用copyOf和copyOfRange处理多维数组
  • copyOf(T[][] original, int newLength): 复制二维数组。

    int[][] matrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
    int[][] newMatrix = Arrays.copyOf(matrix, 2);
    for (int[] row : newMatrix) {
        System.out.println(Arrays.toString(row)); 
        // 输出: [1, 2, 3]
        //       [4, 5, 6]
    }
    
  • copyOfRange(T[][] original, int from, int to): 复制二维数组的指定范围。

    int[][] matrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
    int[][] newMatrix = Arrays.copyOfRange(matrix, 1, 3);
    for (int[] row : newMatrix) {
        System.out.println(Arrays.toString(row)); 
        // 输出: [4, 5, 6]
        //       [7, 8, 9]
    }
【保姆级教程】基于UNet++&MobileNetv2的语义分割模型从训练到RK3588部署:让边缘AI落地效率提升300% 通过SMP库一键构建encoder_name="mobilenet_v2", # 选择MobileNetv2作为骨干encoder_weights="imagenet", # 加载预训练权重加速收敛in_channels=3, # 输入图像通道数(RGB)classes=29, # Cityscapes数据集类别数activation=None # 输出无激活,便于后续损失计算本教程从“模型设计-训练-转换-边缘部署”全链路拆解了。 阅读详情

相关推荐

解决西门子Step 7 basic 找不到许可证问题

你在使用博图软件是否遇到过Step 7 basic 找不到许可证的问题呢!不言怕,今天我就来告诉你该如何处理吧!看步骤: 1.删除原授权的License: 打开Automation License Manager应用,然后我们可以发现仅有的License Key前面有一个时钟,说明它已经过期不可用,我们就要去寻求新的Key. 打开“我的电脑”,选择C盘,点击上方查看 点击选项–>查看 然...

让技术没有门槛 14万+

LeetCode C++ 1502. Can Make Arithmetic Progression From Sequence【Sort/Array】简单

Given an array of numbers arr. A sequence of numbers is called an arithmetic progression if the difference between any two consecutive elements is the same. Return true if the array can be rearranged to form an arithmetic progression, otherwise, return fal

memcpy0的博客 372

【Benchmark 性能测试全指南:从核心原理到 CINEBENCH 实战解析】

本文深度拆解基准测试(Benchmark)的底层逻辑,详解数据集、工作负载、度量指标三大核心要素,分步演示测试流程与统计分析要点。结合 CINEBENCH R23 实战案例,揭秘 CPU 性能评估方法论,助你掌握系统性能量化与优化的核心技能。

rong_ha_ha的博客 6327

LeetCode Hot 100 二叉树专题(二)3 题(Java)

本篇文章共 3 题:543. 二叉树的直径、102. 二叉树的层序遍历、108. 将有序数组转换为二叉搜索树。 每道题都统一按「① 题目分析 & 解题思路 → ② 常见解法(附代码)及讲解 → ③ 知识点总结」的顺序组织;代码使用 Java 编写,节点定义沿用 LeetCode 默认的 TreeNode。

2401_88612756的博客 352

Coze工作流的代码无法安装第三方模块(依赖)怎么办?(如何解决Coze工作流代码缺少模块(依赖)的问题)

Coze工作流的代码无法安装第三方模块(依赖)怎么办?(如何解决Coze工作流代码缺少模块(依赖)的问题)

XiaoqiangClub的博客 4364

外向交货单批次赋值的标准姿势:用 BAPI_OUTB_DELIVERY_CHANGE 把 LIPS-CHARG 改得稳、改得干净

摘要: 外向交货单批次赋值涉及严格的业务约束,包括批次管理状态、单据状态、拆分规则等,直接更新表 LIPS 不可取。推荐使用 BAPI_OUTB_DELIVERY_CHANGE 接口,通过标准业务逻辑实现批次修改。关键点包括:区分单批次分配与批次拆分场景,正确设置 ITEM_CONTROL 控制结构,并确保单位/数量数据完整。附可直接执行的ABAP代码示例,实现安全可靠的批次更新流程。 (字数:149字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 394

LeetCode Hot 100 链表专题 三· 3 题(Java)

收录题目:2. 两数相加、19. 删除链表的倒数第 N 个结点、24. 两两交换链表中的节点。 统一结构:① 题目分析与解题思路 → ② 常见解法(附代码)及讲解 → ③ 知识点总结。 贯穿三题的两条主线:虚拟头结点 dummy(统一处理头结点被修改的场景)与 指针修改顺序(避免断链、丢引用)。

2401_88612756的博客 481

get_ccopt系列命令介绍

get_ccopt_property:用来获取cts阶段,clock tree上所有的参数信息,可以通过get_ccopt_property –help *获取所有参数。get_ccopt_skew_group_delay:用来获取skew group的相关信息,可以通过筛选出特定条件下skew_group的参数,如skew_group下latency最长是多少;get_ccopt_clock_tree_source_groups:获取clock tree的source group名字;

芯冰乐 279

LeetCode 每日一题 2026/11/2-2026/11/8

记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步

AlphaTao的博客 175

KNN算法

其原理是在给定的数据集中,根据某个距离度量方法,将测试数据与已知数据集中的所有数据进行距离计算,然后选取K个距离最近的数据作为测试数据的邻居,根据邻居的类别进行投票,将测试数据分类到得票最多的类别中。总之,KNN算法是一种简单而有效的分类方法,它不需要对数据进行训练,可以适用于多种数据类型和应用场景,并且可以通过调整K值或距离阈值等参数来控制算法的复杂度和性能。,KNN算法需要找到K个距离测试样本最近的训练样本,计算它们的类别,并将测试样本归入到得票最多的类别中。则取值为1,否则为0,表示邻居中属于类别。

优快云XXCQ的博客 2628

013 PID参数整定:Ziegler-Nichols法

几年前在调试一台伺服压机,客户要求位置精度±0.01mm,响应时间小于50ms。我按照教科书上的经验值设了P=1.5,I=0.02,D=0.01,结果电机一启动就开始尖叫,位置超调直接干到0.3mm,然后开始震荡,像极了喝醉的舞者。现场工程师看我的眼神,就像在看一个刚毕业的实习生。那次之后我明白了一个道理:PID参数不是靠猜的,也不是靠经验公式硬套的。你需要一个系统的方法,而Ziegler-Nichols法就是那个让你从“瞎调”走向“有章可循”的起点。

m0_50546716的博客 99

LeetCode 面试经典 150_多维动态规划_交错字符串(97_C++_中等)

LeetCode 面试经典 150_多维动态规划_交错字符串(97_C++_中等) 题目描述: 给定三个字符串 s1、s2、s3,请你帮忙验证 s3 是否是由 s1 和 s2 交错 组成的。 两个字符串 s 和 t 交错 的定义与过程如下,其中每个字符串都会被分割成若干 非空 子字符串: - s = s1 + s2 + ... + sn - t = t1 + t2 + ... + tm - |n - m| <= 1 - 交错 是 s1 + t

huayimenghan的博客 201

YOLOv11 改进 - SPPF模块 | 发论文神器!LSKA注意力改进SPPF,增强多尺度特征提取能力,高效涨点!!!

本文介绍了Large Separable Kernel Attention (LSKA)模块及其在YOLOv11中的结合应用。LSKA旨在解决Visual Attention Networks (VAN)使用大内核卷积时的计算效率问题,通过将2D深度卷积层的卷积核分解为级联的水平和垂直1-D卷积核,降低了计算复杂度和内存占用,且使VAN更关注物体形状。我们将集成LSKA的SPPF_LSKA模块引入YOLOv11,大量实验表明,改进后的模型在对象识别、检测、分割和稳健性测试上表现出色。

魔改工程师的博客 1279

LeetCode 1861. 旋转盒子|Go 双指针解法

j >= 0,如果写成j>0,会漏掉第 0 列,最左侧石头处理失败旋转矩阵行列互换:原 m 行 n 列 → 结果 n 行 m 列,make 数组长度不要写反旋转公式m-1-i:是原总行数 m,不是 n!很容易写成n-1-i区分:本题和轮转数组(189)分组循环不一样!189:所有元素固定移动 k 步,需要 gcd 分组1861:障碍物分割成多个独立段,石头向段末尾挤,用双指针更合适。

2503_92676540的博客 175

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Hash表:两数之和、字母异位词分组、最长连续序列 [力扣 Hot100]

三道高频哈希表应用题:两数之和(利用HashMap快速查找补数)、字母异位词分组(排序后作为键分组)、最长连续序列(通过HashSet去重并仅从序列起点扩展)。核心思想均为借助哈希结构优化查找效率,避免重复计算。同时提及双指针等其他解法思路,体现算法设计中“空间换时间”的典型策略。

2403_87560480的博客 199

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

LeetCode 3926. 统计有效单词的出现次数【分组循环】

核心思想:用分组循环,一趟遍历字符串,把一个个单词切出来,丢进哈希表统计频次。,先把所有片段拼接成完整文本字符串。,依次返回每个单词在文本里的出现次数。难点:内层循环的判断条件,区分。

2503_92676540的博客 166

力扣第526场周赛心得理解

思路:因为题目要求尽可能求出最小的最大值,而满足要求最小公约数为2,作为题目要求最小的最大值,先去求出它的最大公约数再通过value判断最左边是否大于0,以及value本身是否大于0,而index的位置只能为中间或者最右边,所以最后输出只能是value本身或者在这个基础上加相隔相应距离次数的结果。两个整数,是指将第二个整数的所有十进制数位拼接在第一个整数的所有十进制数位之后。如果不存在这样的数组,返回 -1。4097. 合并整数后的最小值。返回所有合并后得到的整数中的。合并,依此类推,直到将。

目前主攻编程,目标是把屏幕上的红波浪线变成流畅运行的程序♪(^∀^●)ノシ 199

LeetCode 0453.最小操作次数使数组元素相等:两次遍历(反向思维)

【LetMeFly】453.最小操作次数使数组元素相等:两次遍历(反向思维)

<font color="Pink">Tisfy的博客</font> 202

【算法学习笔记】LeetCode 15:三数之和(排序 + 双指针)

使用sort()对数组进行排序。理解排序后双指针的移动原理。使用外层循环固定一个数字。使用左右指针寻找另外两个数字。使用continue和while实现去重。理解的执行逻辑。将三层循环优化为排序 + 双指针,使时间复杂度从 O(n³) 降低到 O(n²)。

aqiu111111的博客 157

LeetCode100 15. 三数之和

本题通过排序+双指针优化三数之和。先对数组排序,外层遍历固定第一个数,内层用左右指针查找另两个数,使三数之和为0。通过剪枝(当前数>0则终止)和去重(跳过重复元素)提升效率。相比暴力或哈希法,该方法时间复杂度为O(n²),空间O(1),更高效优雅。

Shaoxingzong的博客 322

LeetCode hot 100 — 226. 翻转二叉树 | 101. 对称二叉树

自己稀里糊涂写了一版本居然还对了,我觉得我的思想就是很简单,这里就是要交换每一个节点的左右子树,所以套用了一下之前的中序遍历的迭代套路。一直在return False,但是没有给真正的正确答案一个出口(注意递归调用中出口 / 返回值很重要,或者说是最重要的)差一步美满....用的递归的写法,差一点点就满分了,先给出自己最开始写的代码。这道题的本质是对每一个节点执行相同的操作,并且交换哪个节点在先并不重要。你可以运用递归和迭代两种方法解决这个问题吗?,翻转这棵二叉树,并返回其根节点。给你一个二叉树的根节点。

Canmido的博客 131

LeetCode2161~2180题目解析

LeetCode2161~2180题目解析

jiaomubai的博客 210

力扣3无重复字符的最长字串(滑动窗口)

该题使用滑动窗口+哈希集合优化,通过复用Set实现O(n)时间复杂度。若每轮循环都新建HashSet,虽逻辑正确,但需重复插入删除,退化为O(n²),导致超时。原解法利用窗口右移时仅移除左端旧字符、扩展右边界,避免重复操作,实现高效遍历。

Pniubi的博客 227

LeetCode 11 - 20

LeetCode 题库 11 - 20

djhws144的博客 227

LeetCodehot100+背包问题+虚拟线程

虚拟线程虽能高效利用CPU,但滥用会导致资源耗尽。错误用法中,瞬间创建1万个虚拟线程并发调用慢速下游服务,虽不占用物理线程,却引发网络连接、内存和下游服务的全面崩溃。根本原因在于虚拟线程仅缓解“等待”成本,未解决“资源”瓶颈。正确做法是在IO边界使用Semaphore限流,如设为100,控制并发数,使多余请求在堆内存中廉价挂起,保护系统稳定。虚拟线程需配合背压机制,才能真正发挥其高并发优势。

记录大学学习学习成长过程,欢迎各位一起交流 411

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

该题通过滑动窗口与字符计数数组解决。用两个长度为26的数组 sCount 和 pCount 分别统计当前窗口和目标串 p 中各字母出现次数。初始化窗口后,若两数组相等,则记录起始位置;随后滑动窗口,左移时减去旧字符计数,右移时加上新字符计数,持续比较是否异位词。时间复杂度 O(n),空间复杂度 O(1)。

Pniubi的博客 226

LeetCode 面试经典 150_数学_阶乘后的零(133_172_C++_中等)

LeetCode 面试经典 150_数学_阶乘后的零(133_172_C++_中等) 题目描述: 给定一个整数 n ,返回 n! 结果中尾随零的数量。 提示 n! = n * (n - 1) * (n - 2) * ... * 3 * 2 * 1

huayimenghan的博客 112
上一篇: 力扣1822. 数组元素积的符号
下一篇: 数据库表的连接方式(超详细讲解)
AffectionGF
博客等级 码龄3年 78粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值