java基础算法_JAVA基础资料以及基本算法(自己整理的).pdf

JAVA基础资料以及基本算法(自己整理的)

一:JAVA 读写

读文件:

FileInputStream

通过打开一个到实际文件的连接来创建一个 FileInputStream,该文件通过文件系统中的路径

name 指定。创建一个新 FileDescriptor 对象来表示此文件连接。

InputStreamReader

InputStreamReader 是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解

码为字

符。它使用的字符集可以由名称指定或显式给定,否则可能接受平台默认的字符集。

BufferedReader

从字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取。 可以指定缓

冲区

的大小,或者可使用默认的大小。大多数情况下,默认值就足够大了。

StringBuffer

线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,但不能修改。虽然在任意时

间点上

它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。

public static void main(String[] args) {

//读取文件内容

File a new File("C:/add2.txt");

if(a.exists()){

FileInputStreamfi new FileInputStream(a);

InputStreamReader isr new InputStreamReader(fi, "GBk");

BufferedReader bfin new BufferedReader(isr);

String rLine "";

while((rLine bfin.readLine())! null){

System.out.println(rLine);

}

}

}

写文件:

1

在 java 写文件中,通常会使用FileOutputStream和FileWriter,FileWriter 只能写文本文件。

FileOutputStream也经常结合BufferedOutputStream。因为实际应用中写文本文件的情况占

了大多数。所以下面测试用不同的方式生成一个相同行数、大小相同的文件的三种不同方式。

importjava.io.File;

importjava.io.FileOutputStream;

importjava.io.*;

public class FileTest {

public FileTest() {

}

public static void main(String[] args) {

FileOutputStream out null;

FileOutputStream outSTr null;

BufferedOutputStream Buff null;

FileWriterfw null;

int count 1000;//写文件行数

try {

out new FileOutputStream(new File("C:/add.txt"));

long begin System.currentTimeMillis();

for (int i 0; i < count; i++) {

out.write("测试java 文件操作\r\n".getBytes());

}

out.close();

long end System.currentTimeMillis();

System.out.println("FileOutputStream执行耗时:" + (end - begin) + " 豪秒");

outSTr new FileOutputStr

算法 Java实现 第四版 PDF格式 中文版 高清扫描版 Robert Sedgewick 著 算法经典书籍 作者: 塞奇威克 (Robert Sedgewick) / 韦恩 (Kevin Wayne) 出版社: 人民邮电出版社 原作名: Algorithms 4th edition 译者: 谢路云 出版年: 2012-10-1 页数: 636 定价: 99.00元 装帧: 平装 丛书: 图灵程序设计丛书 ISBN: 9787115293800 内容简介 · · · · · · 本书全面讲述算法和数据结构的必备知识,具有以下几大特色。  算法领域的经典参考书 Sedgewick畅销著作的最新版,反映了经过几十年演化而成的算法核心知识体系  内容全面 全面论述排序、搜索、图处理和字符串处理的算法和数据结构,涵盖每位程序员应知应会的50种算法  全新修订的代码 全新的Java实现代码,采用模块化的编程风格,所有代码均可供读者使用  与实际应用相结合 在重要的科学、工程和商业应用环境下探讨算法,给出了算法的实际代码,而非同类著作常用的伪代码  富于智力趣味性 简明扼要的内容,用丰富的视觉元素展示的示例,精心设计的代码,详尽的历史和科学背景知识,各种难度的练习,这一切都将使读者手不释卷  科学的方法 用合适的数学模型精确地讨论算法性能,这些模型是在真实环境中得到验证的  与网络相结合 配套网站algs4.cs.princeton.edu提供了本书内容的摘要及相关的代码、测试数据、编程练习、教学课件等资源 作者简介 · · · · · · Robert Sedgewick 斯坦福大学博士,导师为Donald E. Knuth,从1985年开始一直担任普林斯顿大学计算机科学系教授,曾任该系主任,也是Adobe Systems公司董事会成员,曾在Xerox PARC、国防分析研究所(Institute for Defense Analyses)和法国国家信息与自动化研究所(INRIA)从事研究工作。他的研究方向包括解析组合学、数据结构和算法的分析与设计、程序可视化等。 Kevin Wayne 康奈尔大学博士,普林斯顿大学计算机科学系高级讲师,研究方向包括算法的设计、分析和实现,特别是图和离散优化。 目录 · · · · · · 目录 第1章  基础  1 1.1 基础编程模型  4 1.1.1 Java程序的基本结构  4 1.1.2 原始数据类型与表达式  6 1.1.3  语句  8 1.1.4  简便记法  9 1.1.5  数组  10 1.1.6  静态方法  12 1.1.7  API  16 1.1.8  字符串  20 1.1.9  输入输出  21 1.1.10  二分查找  28 1.1.11  展望  30 1.2  数据抽象  38 1.2.1  使用抽象数据类型  38 1.2.2  抽象数据类型举例  45 1.2.3  抽象数据类型的实现  52 1.2.4  更多抽象数据类型的实现  55 1.2.5  数据类型的设计  60 1.3  背包、队列和栈  74 1.3.1  API  74 1.3.2  集合类数据类型的实现  81 1.3.3  链表  89 1.3.4  综述  98 1.4  算法分析  108 1.4.1  科学方法  108 1.4.2  观察  108 1.4.3  数学模型  112 1.4.4  增长数量级的分类  117 1.4.5  设计更快的算法  118 1.4.6  倍率实验  121 1.4.7  注意事项  123 1.4.8  处理对于输入的依赖  124 1.4.9  内存  126 1.4.10  展望  129 1.5  案例研究:union-find算法  136 1.5.1  动态连通性  136 1.5.2  实现  140 1.5.3  展望  148 第2章  排序  152 2.1  初级排序算法  153 2.1.1  游戏规则  153 2.1.2  选择排序  155 2.1.3  插入排序  157 2.1.4  排序算法的可视化  159 2.1.5  比较两种排序算法  159 2.1.6  希尔排序  162 2.2  归并排序  170 2.2.1  原地归并的抽象方法  170 2.2.2  自顶向下的归并排序  171 2.2.3  自底向上的归并排序  175 2.2.4  排序算法的复杂度  177 2.3  快速排序  182 2.3.1  基本算法  182 2.3.2  性能特点  185 2.3.3  算法改进  187 2.4  优先队列  195 2.4.1  API  195 2.
   现代的设计任务大多通过计算机编程来完成,而算法起到了至关重要的作用。可以毫不夸张地说,算法是一切程序设计的灵魂和基础。选择合理的算法,可以起到事半功倍的效果。   赵志云、衡友跃编著的《Java常用算法手册》分三篇,共13章,分别介绍了算法基础算法应用和算法面试题。首先介绍了算法概述,然后重点分析了数据结构和基本算法思想;接着,详细讲解了算法在排序、查找、数学计算、数论、历史趣题、游戏、密码学等领域中的应用;最后,列举了算法的一些常见面试题。   书中知识点覆盖全面,结构安排紧凑,讲解详细,实例丰富。全书对每一个知识点都给出了相应的算法及应用实例,虽然这些例子都是以Java语言来编写的,但是这些算法并不局限于Java语言。如果读者采用其他的编程语言,例如C++、C、C#等,只要根据其语法格式进行适当的修改便可以了。   《Java常用算法手册》旨在帮助Java语言初级程序员深入了解Java算法思想,提升其语言代码编程能力,还可以作为大中专院校学生学习数据结构和算法的参考书,也可为教师授课提供素材,同时还可以作为具有一定编程经验的程序员的参考用书。 第1篇 算法基础篇 1 第1章 算法概述 1 1.1 什么是算法 1 1.2 算法的发展历史 2 1.3 算法的分类 3 1.4 算法相关概念的区别 3 1.4.1 算法与公式的关系 4 1.4.2 算法与程序的关系 4 1.4.3 算法与数据结构的关系 4 1.5 算法的表示 4 1.5.1 自然语言表示 5 1.5.2 流程图表示 5 1.5.3 N-S 图表示 6 1.5.4 伪代码表示 7 1.6 算法的性能评价 7 1.6.1 时间复杂度 8 1.6.2 空间复杂度 8 1.7 算法实例 8 1.7.1 查找数字 8 1.7.2 创建项目 10 1.7.3 编译执行 12 1.8 算法的新进展 13 1.9 小结 14 第2章 数据结构 15 2.1 数据结构概述 15 2.1.1 什么是数据结构 15 2.1.2 数据结构中的基本概念 16 2.1.3 数据结构的内容 16 2.1.4 数据结构的分类 18 2.1.5 数据结构的几种存储方式 18 2.1.6 数据类型 19 2.1.7 常用的数据结构 20 2.1.8 选择合适的数据结构解决实际问题 21 2.2 线性表 21 2.2.1 什么是线性表 21 2.2.2 线性表的基本运算 22 2.3 顺序表结构 23 2.3.1 准备数据 23 2.3.2 初始化顺序表 24 2.3.3 计算顺序表长度 24 2.3.4 插入结点 24 2.3.5 结点 25 2.3.6 删除结点 25 2.3.7 查找结点 25 2.3.8 显示所有结点 26 2.3.9 顺序表操作实例 26 2.4 链表结构 30 2.4.1 什么是链表结构 30 2.4.2 准备数据 31 2.4.3 追加结点 31 2.4.4 插入头结点 32 2.4.5 查找结点 33 2.4.6 插入结点 34 2.4.7 删除结点 35 2.4.8 计算链表长度 35 2.4.9 显示所有结点 36 2.4.10 链表操作实例 36 2.5 栈结构 41 2.5.1 什么是栈结构 41 2.5.2 准备数据 41 2.5.3 初始化栈结构 42 2.5.4 断空栈 42 2.5.5 判断满栈 43 2.5.6 清空栈 43 2.5.7 释放空间 43 2.5.8 入栈 43 2.5.9 出栈 44 2.5.10 读结点数据 44 2.5.11 栈结构操作实例 45 2.6 队列结构 47 2.6.1 什么是队列结构 48 2.6.2 准备数据 48 2.6.3 初始化队列结构 49 2.6.4 判断空队列 49 2.6.5 判断满队列 49 2.6.6 清空队列 50 2.6.7 释放空间 50 2.6.8 入队列 50 2.6.9 出队列 51 2.6.10 读结点数据 51 2.6.11 计算队列长度 52 2.6.12 队列结构操作实例 52 2.7 树结构 55 2.7.1 什么是树结构 56 2.7.2 树的基本概念 56 2.7.3 二叉树 57 2.7.4
算法是一切程序设计的基础和灵魂,更是一位程序员编程水平高低的集中体现。 涵盖广泛:精炼的理论讲述嵌入经典算法示例,学习查询兼而有之。 阐述到位:算法思想、算法实现和经典面试题合理搭配,相辅相成。 实例完善:分析精准,注释精确,保证每段代码皆可通过编译执行。 超过600分钟讲解视频和案例源代码倾囊相送。 附赠5本电子书教程铺就Java程序员成长之路。 本书分三篇,共14章,分别介绍了算法基础算法应用和算法面试题。首先介绍了算法概述,然后重点分析了数据结构和基本算法思想;接着详细讲解了算法在排序、查找、数学计算、数论、历史趣题、游戏等领域中的应用;后梳理和精选了一些经典的算法面试题,供读者开拓思维之用。 第1章 算法和实现算法Java语法 1.1 建立算法初步概念 1.1.1 什么是算法 1.1.2 算法的发展历史 1.1.3 算法的分类 1.2 算法相关概念的区别 1.2.1 算法与公式的关系 1.2.2 算法与程序的关系 1.2.3 算法与数据结构的关系 1.3 算法的表示 1.3.1 自然语言表示 1.3.2 流程图表示 1.3.3 N-S图表示 1.3.4 伪代码表示 1.4 算法的性能评价 1.4.1 时间复杂度 1.4.2 空间复杂度 1.5 一个算法实例 1.5.1 查找数字 1.5.2 创建项目 1.5.3 编译执行 1.6 Java程序的基本结构 1.6.1 类是一个基本单元 1.6.2 main方法 1.6.3 自定义方法 1.6.4 System.out.println的使用 1.6.5 一个简单而完整的程序 1.7 顺序结构 1.8 分支结构 1.8.1 if...else分支结构 1.8.2 if...else嵌套 1.8.3 switch语句 1.8.4 编程实例 1.9 循环结构 1.9.1 while循环 1.9.2 do…while循环 1.9.3 for循环 1.9.4 编程实例 1.10 跳转结构 1.10.1 break 1.10.2 continue 1.10.3 编程实例 1.11 小结 第2章 数据结构 2.1 数据结构概述 2.1.1 什么是数据结构 2.1.2 数据结构中的基本概念 2.1.3 数据结构的内容 2.1.4 数据结构的分类 2.1.5 数据结构的几种存储方式 2.1.6 数据类型 2.1.7 常用的数据结构 2.1.8 选择合适的数据结构解决实际问题 2.2 线性表 2.2.1 什么是线性表 2.2.2 线性表的基本运算 2.3 顺序表结构 2.3.1 准备数据 2.3.2 初始化顺序表 2.3.3 计算顺序表长度 2.3.4 插入结点 2.3.5 追加结点 2.3.6 删除结点 2.3.7 查找结点 2.3.8 显示所有结点 2.3.9 顺序表操作实例 2.4 链表结构 2.4.1 什么是链表结构 2.4.2 准备数据 2.4.3 追加结点 2.4.4 插入头结点 2.4.5 查找结点 2.4.6 插入结点 2.4.7 删除结点 2.4.8 计算链表长度 2.4.9 显示所有结点 2.4.10 链表操作实例 2.5 栈结构 2.5.1 什么是栈结构 2.5.2 准备数据 2.5.3 初始化栈结构 2.5.4 判断空栈 2.5.5 判断满栈 2.5.6 清空栈 2.5.7 释放空间 2.5.8 入栈 2.5.9 出栈 2.5.10 读结点数据 2.5.11 栈结构操作实例 2.6 队列结构 2.6.1 什么是队列结构 2.6.2 准备数据 2.6.3 初始化队列结构 2.6.4 判断空队列 2.6.5 判断满队列 2.6.6 清空队列 2.6.7 释放空间 2.6.8 入队列 2.6.9 出队列 2.6.10 读结点数据 2.6.11 计算队列长度 2.6.12 队列结构操作实例 2.7 树结构 2.7.1 什么是树结构 2.7.2 树的基本概念 2.7.3 二叉树 2.7.4 准备数据 2.7.5 初始化二叉树 2.7.6 添加结点 2.7.7 查找结点 2.7.8 获取左子树 2.7.9 获取右子树 2.7.10 判断空树 2.7.11 计算二叉树深度 2.7.12 清空二叉树 2.7.13 显示结点数据 2.7.14 遍历二叉树 2.7.15 树结构操作实例 2.8 图结构 2.8.1 什么是图结构 2.8.2 图的基本概念 2.8.3 准备数据 2.8.4 创建图 2.8.5 清空图 2.8.6 显示图 2.8.7 遍历图 2.8.8 图结构操作实例 2.9 小结 第3章 基本算法思想 3.1 常用算法思想概述 3.2 穷举算法思想 3.2.1 穷举算法基本思想 3.2.2 穷举算法实例 3.3 递推算法思想 3.3.1 递推算法基本思想 3.3.2 递推算法实例 3.4 递归算法思想 3.4.1 递归算法基本思想 3.4.2 递归算法实例 3.5 分治算法思想 3.5.1 分治算法基本思想 3.5.2 分治算法实例 3.6 概率算法思想 3.6.1 概率算法基本思想 3.6.2 概率算法实例 3.7 小结 第4章 排序算法 4.1 排序算法概述 4.2 冒泡排序算法 4.2.1 冒泡排序算法 4.2.2 冒泡排序算法实例 4.3 选择排序算法 4.3.1 选择排序算法 4.3.2 选择排序算法实例 4.4 插入排序算法 4.4.1 插入排序算法 4.4.2 插入排序算法实例 4.5 Shell排序算法 4.5.1 Shell排序算法 4.5.2 Shell排序算法实例 4.6 快速排序算法 4.6.1 快速排序算法 4.6.2 快速排序算法实例 4.7 堆排序算法 4.7.1 堆排序算法 4.7.2 堆排序算法实例 4.8 合并排序算法 4.8.1 合并排序算法 4.8.2 合并排序算法实例 4.9 排序算法的效率 4.10 排序算法的其他应用 4.10.1 反序排序 4.10.2 字符串数组的排序 4.10.3 字符串的排序 4.11 小结 第5章 查找算法 5.1 查找算法概述 5.2 顺序查找 5.2.1 顺序查找算法 5.2.2 顺序查找操作实例 5.3 折半查找 5.3.1 折半查找算法 5.3.2 折半查找操作实例 5.4 数据结构中的查找算法 5.4.1 顺序表结构中的查找算法 5.4.2 链表结构中的查找算法 5.4.3 树结构中的查找算法 5.4.4 图结构中的查找算法 5.5 小结 第6章 基本数学问题 6.1 判断闰年 6.2 多项式计算 6.2.1 一维多项式求值 6.2.2 二维多项式求值 6.2.3 多项式乘法 6.2.4 多项式除法 6.3 随机数生成算法 6.3.1 Java语言中的随机方法 6.3.2 [0,1]之间均匀分布的随机数算法 6.3.3 产生任意范围的随机数 6.3.4 [m,n]之间均匀分布的随机整数算法 6.3.5 正态分布的随机数生成算法 6.4 复数运算 6.4.1 简单的复数运算 6.4.2 复数的幂运算 6.4.3 复指数运算 6.4.4 复对数运算 6.4.5 复正弦运算 6.4.6 复余弦运算 6.5 阶乘 6.5.1 使用循环来计算阶乘 6.5.2 使用递归来计算阶乘 6.6 计算π的近似值 6.6.1 割圆术 6.6.2 蒙特卡罗算法 6.6.3 级数公式 6.7 矩阵运算 6.7.1 矩阵加法 6.7.2 矩阵减法 6.7.3 矩阵乘法 6.8 方程求解 6.8.1 线性方程求解——高斯消元法 6.8.2 非线性方程求解——二分法 6.8.3 非线性方程求解——牛顿迭代法 6.9 小结 第7章 数据结构问题 7.1 动态数组排序 7.1.1 动态数组的存储和排序 7.1.2 动态数组排序实例 7.2 约瑟夫环 7.2.1 简单约瑟夫环算法 7.2.2 简单约瑟夫环求解 7.2.3 复杂约瑟夫环算法 7.2.4 复杂约瑟夫环求解 7.3 城市之间的最短总距离 7.3.1 最短总距离算法 7.3.2 最短总距离求解 7.4 最短路径 7.4.1 最短路径算法 7.4.2 最短路径求解 7.5 括号匹配 7.5.1 括号匹配算法 7.5.2 括号匹配求解 7.6 小结 第8章 数论问题 8.1 数论概述 8.1.1 数论概述 8.1.2 数论的分类 8.1.3 初等数论 8.1.4 本章用到的基本概念 8.2 完全数 8.2.1 什么是完全数 8.2.2 计算完全数算法 8.3 亲密数 8.3.1 什么是亲密数 8.3.2 计算亲密数算法 8.4 水仙花数 8.4.1 什么是水仙花数 8.4.2 计算水仙花数算法 8.5 自守数 8.5.1 什么是自守数 8.5.2 计算自守数算法 8.6 最大公约数 8.6.1 计算最大公约数算法——辗转相除法 8.6.2 计算最大公约数算法——Stein 算法 8.6.3 计算最大公约数示例 8.7 最小公倍数 8.8 素数 8.8.1 什么是素数 8.8.2 计算素数算法 8.9 回文素数 8.9.1 什么是回文素数 8.9.2 计算回文素数算法 8.10 平方回文数 8.10.1 什么是平方回文数 8.10.2 计算平方回文数算法 8.11分 解质因数 8.12 小结 第9章 算法经典趣题 9.1 百钱买百鸡 9.1.1 百钱买百鸡算法 9.1.2 百钱买百鸡求解 9.2 五家共井 9.2.1 五家共井算法 9.2.2 五家共井求解 9.3 鸡兔同笼 9.3.1 鸡兔同笼算法 9.3.2 鸡兔同笼求解 9.4 猴子吃桃 9.4.1 猴子吃桃算法 9.4.2 猴子吃桃求解 9.5 舍罕王赏麦 9.5.1 舍罕王赏麦问题 9.5.2 舍罕王赏麦求解 9.6 汉诺塔 9.6.1 汉诺塔算法 9.6.2 汉诺塔求解 9.7 窃贼问题 9.7.1 窃贼问题算法 9.7.2 窃贼问题求解 9.8 马踏棋盘 9.8.1 马踏棋盘算法 9.8.2 马踏棋盘求解 9.9 八皇后问题 9.9.1 八皇后问题算法 9.9.2 八皇后问题求解 9.10 寻找假银币 9.10.1 寻找假银币算法 9.10.2 寻找假银币求解 9.11 青蛙过河 9.11.1 青蛙过河算法 9.11.2 青蛙过河求解 9.12 三色旗 9.12.1 三色旗算法 9.12.2 三色旗求解 9.13 渔夫捕鱼 9.13.1 渔夫捕鱼算法 9.13.2 渔夫捕鱼求解 9.14 爱因斯坦的阶梯 9.14.1 爱因斯坦的阶梯算法 9.14.2 爱因斯坦的阶样求解 9.15 兔子产仔 9.15.1 兔子产仔算法 9.15.2 兔子产仔求解 9.16 常胜将军 9.16.1 常胜将军算法 9.16.2 常胜将军求解 9.17 新郎和新娘 9.17.1 新郎和新娘算法 9.17.2 新郎和新娘求解 9.18 三色球 9.18.1 三色球算法 9.18.2 三色球求解 9.19 小结 第10章 游戏中的算法 10.1 洗扑克牌算法 10.1.1 洗扑克牌算法 10.1.2 洗扑克牌实例 10.2 取火柴游戏算法 10.2.1 取火柴游戏算法 10.2.2 取火柴游戏实例 10.3 十点半算法 10.3.1 十点半算法 10.3.2 十点半游戏实例 10.4 生命游戏 10.4.1 生命游戏的原理 10.4.2 生命游戏的算法 10.4.3 生命游戏实例 10.5 小结 第11章 简单Java上机面试题 11.1 打印九九乘法口诀表 11.2 获得任意一个时间的下一天的时间 11.3 将某个时间以固定格式转化成字符串 11.4 怎样截取字符串 11.5 怎样实现元素互换 11.6 怎样实现元素排序 11.7 怎样实现Singleton模式编程 11.8 怎样实现金额转换 11.9 如何判断回文数字 11.10 小结 第12章 逻辑推理类面试题 12.1 脑筋急转弯 12.1.1 中国有多少辆汽车 12.1.2 下水道的盖子为什么是圆形的 12.1.3 分蛋糕 12.2 逻辑推理 12.2.1 哪个开关控制哪盏灯 12.2.2 戴帽子 12.2.3 海盗分金 12.2.4 罪犯认罪 12.2.5 找出质量不相同的球 12.2.6 有多少人及格 12.2.7 他说的是真话吗 12.3 计算推理 12.3.1 倒水问题 12.3.2 骗子购物 12.3.3 求最大的连续组合值(华为校园招聘笔试题) 12.3.4 洗扑克牌(乱数排列) 12.3.5 字符移动(金山笔试题) 12.4 小结 第13 章数学能力测试 13.1 100 盏灯 13.2 用一笔画出经过9个点的4条直线 13.3 时针、分针和秒针重合问题 13.4 怎样拿到第100号球 13.5 烧绳计时 第14章 算法面试题(光盘中阅读) 14.1 基础算法 14.1.1 字符串匹配 14.1.2 哥德巴赫猜想的近似证明 14.1.3 将一个正整数分解质因数 14.1.4 怎样实现金额转换 14.1.5 数字排列 14.1.6 数字拆解 14.1.7 数字组合 14.2 思维扩展算法 14.2.1 蛇形打印 14.2.2 24点算法 14.2.3 双色球随机摇号 14.2.4 巧妙过桥 14.2.5 猴子吃桃 14.2.6 天平称物 14.2.7 掷骰子游戏 14.3 小结

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:游动-白 设计师:我叫白小胖 返回首页

打赏作者

瀚海星星123

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值