自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(109)
  • 收藏
  • 关注

原创 【VMWare虚拟机Centos7安装配置redis及Redis常用命令合集】

前置依赖1.Redis依赖gcc和tcl环境,所以要先安装gcc和tcl执行下面语句安装gcc:yum install gcc-c++若提示是否继续,输入y继续安装执行下面语句安装tcl:yum install -y tcl下载redis解压并安装1.下载redis安装包wget http://download.redis.io/releases/redis-3.2.8.tar.gz下载完成可在用户主目录看到redis-3.2.8.tar.gz2.解压安装包tar xzf r

2020-07-05 16:18:21 1226

原创 七大基本排序算法图文详解

文章目录冒泡排序算法描述选择排序算法描述插入排序算法描述希尔排序算法描述快速排序算法描述归并排序算法描述基数排序(桶排序算法描述思路冒泡排序算法描述1.i从0开始,i与i+1比较,如果i>i+1,那么就互换。2.i不断增加,直到最后一个元素,一趟比较下来,最大的元素就放到了数组最后。3.接着开始第二趟,第二趟完后倒数第二位也是第二大的数。4.以此类推,5个数的数组就需要4趟比较,然后第⼀趟需要⽐较4次,第⼆趟需要⽐较3次,第三趟需要⽐较2次,第四躺需要⽐较1次。5.我们在比较过程中可能第

2020-06-22 18:56:36 473 1

转载 面试官:一条sql语句在MySQL中如何执行?

文章目录MySQL基础架构Server层基本组件介绍连接器查询缓存(8.0版本后移除)分析器优化器执行器语句分析查询语句更新语句总结MySQL基础架构下图是 MySQL 的一个简要架构图,从下图你可以很清晰的看到用户的 SQL 语句在 MySQL 内部是如何执行的。先简单介绍一下下图涉及的一些组件的基本作用帮助大家理解这幅图,在 1.2 节中会详细介绍到这些组件的作用。连接器: 身份认证和权限相关(登录 MySQL 的时候)。查询缓存: 执行查询语句的时候,会先查询缓存(MySQL 8.0 版本后

2020-06-20 22:42:21 233

转载 【MySQL 必知必会 聚簇索引与非聚簇索引 (一看就会)】

文章目录什么是索引索引的作用聚簇索引与非聚簇索引误区:把主键自动设置为聚簇索引图文解释聚簇索引的优势聚簇索引的劣势为什么主键通常建议使用自增id覆盖索引什么是索引在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单,简单来说,索引就是一种快速查询和检索数据的数据结构,就像是图书的目录,根据目录快速查找到所需内容。索引的作用保证数据的准确性( 唯一的索引值对应着唯一的数据。)加

2020-06-15 13:12:08 396 1

原创 【MySQL必知必会 SQL优化之索引优化】

文章目录MySQL优化常用手段索引优化B树与B+树B树B+树比较数据库为什么使用B+树Btree索引的特点如何选择在什么列上建立索引WHERE子句中的列(在筛选性好的列建立索引)多表JOIN的关联列如何选择复合索引键的顺序索引使用的事项SQL改写优化MySQL优化常用手段优化SQL查询所涉及到的表中的索引改写SQL以更好的利用索引索引优化B树与B+树B树何为B树,B树就是一颗多路平衡查找树,也是由简单的二叉树变来的,我们可以先看一个4阶的B树:一颗m阶的B树定义如下:每一个节点最多

2020-06-14 20:46:48 218

原创 【MySQL必知必会 高性能优化】

文章目录优化SQL一般步骤发现存在问题的SQL配置慢查询日志分析慢查询日志工具安装PERCONA工具集启用慢查询日志分析慢查询日志监控长时间运行的SQLSQL执行计划获取SQL执行计划分析执行计划id列select_type列table列type列possible_keys列和 keys列rows列filtered列extra列优化SQL一般步骤发现存在问题的SQL用户主动申报问题(比较被动)分析慢查询日志发现存在问题的SQL数据库实时监控运行时间长的SQL配置慢查询日志分析慢查询日

2020-06-14 00:01:25 130

原创 【MySQL必知必会 常用的SQL语句(二)】

文章目录SQL开发DML(Data Manipulation Language)向表中写入数据查询表中的数据ALL语句DISTINCT语句WHERE子句编写一条简单的SELECT语句的思路MySQL的比较运算符SQL开发DML(Data Manipulation Language)关键字作用INSERT向表中插入数据DELETE删除表中数据SELECT查询表中数据UPDATE更新表中数据向表中写入数据ON DUPLICATE KEY UPDATE

2020-06-13 17:09:07 220

原创 【MySQL必知必会 常用的SQL语句(一)】

文章目录SQL语言开发DCL(Data Control Language)建立数据库账号给账号授权回收用户权限DDL(Data Definition Language)建立数据库imc_db建立数据库imc_db中的表删除表修改表索引维护SQL语言开发DCL(Data Control Language)DCL:访问控制语句,我们在之前登陆MySQL用得账号都是root账号,这在项目开发中是极其不安全的,所以这里需要DCL语句创建账号并赋予一定的权限,基本的DCL语句有三种,分别是:建立数据库账号:

2020-06-12 17:52:43 226

原创 【MySQL 设计师视角 数据库结构设计】

文章目录数据库结构设计业务分析逻辑设计宽表模式设计范式第一范式第二范式第三范式面向对象设计物理设计常用的MySQL存储引擎INNODB存储引擎MACC在INNODB中的实现快照读与当前读标题数据库结构设计设计流程一览:业务分析---------->逻辑设计--------------->物理设计---------->对像命名业务分析我们这里以慕课网免费课前端为项目,进行数据库的结构设计,并非实际慕课网的数据库结构。首先来看慕课网前端的页面,可以进行项目的需求总结:可以先罗列

2020-06-12 11:55:20 299

原创 【MySQL 架构师视角 数据库并发】

serializable事务隔离级别SERIALIZABLE(可串行化): 最高的隔离级别,完全服从ACID的隔离级别。所有的事务依次逐个执行,这样事务之间就完全不可能产生干扰,也就是说,该级别可以防止脏读、不可重复读以及幻读。我们可以通过下面的命令来设置隔离级别SET [SESSION|GLOBAL] TRANSACTION ISOLATION LEVEL [READ UNCOMMITTED |READ COMMITTED |REPEATABLE READ |SERIALIZABLE]

2020-06-11 00:16:30 994

转载 【操作系统最全面试题合集】

什么是操作系统?1.操作系统(Operating System,简称 OS)是管理计算机硬件与软件资源的程序,是计算机系统的内核与基石;2.操作系统本质上是运行在计算机上的软件程序 ;3.操作系统为用户提供一个与系统交互的操作界面 ;4.操作系统分内核与外壳(我们可以把外壳理解成围绕着内核的应用程序,而内核就是能操作硬件的程序)什么是系统调用呢?这些系统调用按功能大致可分为如下几类:1.设备管理。完成设备的请求或释放,以及设备启动等功能。2.文件管理。完成文件的读、写、创建及删除等功能。3

2020-06-03 18:02:03 659

原创 【纯干货!Linux命令合集】

目录树Linux基本命令1.1 pwd命令该命令的英文解释为print working directory(打印工作目录)。输入pwd命令,Linux会输出当前目录。1.2 cd命令cd命令为目录切换命令cd usr: 切换到该目录下usr目录cd . ./: 切换到上一层目录cd /: 切换到系统根目录cd ~: 切换到用户主目录cd -: 切换到上一个操作所在目录1.3 ls命令ls命令用来查看目录的内容选项含义-a列举目录中的全部文件,包括隐藏文

2020-06-03 15:48:27 2361 1

转载 【计算机网络】 常见面试题

URI和URL的区别是什么?URI(Uniform Resource Identifier) 是统一资源标志符,可以唯一标识一个资源。URL(Uniform Resource Location) 是统一资源定位符,可以提供该资源的路径。它是一种具体的 URI,即 URL 可以用来标识一个资源,而且还指明了如何 locate 这个资源。URI的作用像身份证号一样,URL的作用更像家庭住址一样。URL是一种具体的URI,它不仅唯一标识资源,而且还提供了定位该资源的信息。在浏览器中输入url地址 -&

2020-05-31 21:04:09 523

原创 【计算机网络】应用层

DNS(域名系统)DNS提供了主机名和IP地址相互转换的服务,如上图,访问baidu.com会先请求DNS服务,转换成IP地址后再访问,这样解决了IP地址难记忆的问题。www是三级域,taobao是二级域,com是顶级域顶级域可分为国家和通用两种类型,.com代表公司,.net代表网络服务机构,.gov代表政府机构,.org代表组织。DHCP协议(动态主机设置协议)DHCP协议提供了即插即用的连网方式,用户不再需要手动配置 IP 地址等信息。DHCP的工作流程:通过以上步骤,主机

2020-05-31 20:43:25 229

原创 【计算机网络】 传输层

UDP协议的特点UDP是无连接协议UDP不保证可靠的交付数据UDP是面向报文传输的UDP没有拥塞控制UDP的首部开销很小TCP协议的特点TCP是面向连接的协议TCP的一个连接有两端(点对点通信)TCP提供可靠的传输服务TCP协议提供全双工通信TCP协议面向字节流的协议TCP头部格式序号:用于对字节流进行编号,一个字节一个序号,例如序号为 301,表示第一个字节的编号为 301,如果携带的数据长度为 100 字节,那么下一个报文段的序号应为 401。确认号:占16

2020-05-30 21:45:52 280

原创 【计算机网络】网络层

网络层虚拟互联网络IP协议使得复杂的实际网络变成一个虚拟的互连网络IP协议可以使得网络层屏蔽底层细节而专注网络层的数据转发IP协议解决了在虚拟网络中数据报传输路径的问题IP数据报格式对于IP协议的头部,前五行为固定部分,第六行可有可无,第七行为数据报,前五行每行都有32个比特,也就是四个字节,所以IP头部至少有20个字节长度。版本 : 有 4(IPv4)和 6(IPv6)两个;首部长度 : 占 4 位,因此最大值为 15。值为 1 表示的是 1 个 32 位字的长度,也就是 4

2020-05-29 14:30:36 725

原创 【JAVA高薪之路 面试题精选】Map类面试题

知识结构及题目分析​ 一般而言,Map 的面试题可分为四类:1、HashMap 的数据结构,面试官考察的是对 Map 内部的存储结构了解;2、HashMap 的增删查改操作,面试官考察的是对 map 内部操作流程的熟悉程度,既要知其然,还要知其所以然;3、HashMap 的的应用,面试官考察的是灵活运用 HashMap 的能力;4、其他 Map 类面试题,面试官考察的是系统掌握 Map 类的能力。典型例题及思路分析问题 1:"那你知道 HashMap 内部的数据结构吗?"参考答案:​ 各个

2020-05-25 16:16:13 878

原创 【玩转数据结构 从入门到进阶13学习总结】红黑树与AVL树的区别

比较红黑树不追求"完全平衡",即不像AVL那样要求节点的左右孩子高度差不超过1,它只要求部分达到平衡,就是要求从根节点到叶子节点的最长路径不大于最短路径的两倍。红黑是用非严格的平衡来换取增删节点时候旋转次数的降低,任何不平衡都会在三次旋转之内解决,而AVL是严格平衡树,因此在增加或者删除节点的时候,根据不同情况,旋转的次数比红黑树要多就插入节点导致树失衡的情况,AVL和RB-Tree都是最多两次树旋转来实现复衡rebalance,旋转的量级是O(1)但在删除节点时导致的失衡,AVL需要维护从被删除节

2020-05-24 16:49:14 153

原创 【玩转数据结构 从入门到进阶10学习笔记】并查集

并查集Quick Union这个版本的目的是使用一个数组构建一棵指向父节点的树,首先是将每个元素看做是一个节点,让每个节点指向自己,接下来做union操作这个操作是将3所在集合的根节点指向8所在集合的根节点public class UnionFind2 implements UF { // 我们的第二版Union-Find, 使用一个数组构建一棵指向父节点的树 // parent[i]表示第一个元素所指向的父节点 private int[] parent;

2020-05-23 21:12:57 137

原创 【玩转数据结构 从入门到进阶11学习笔记】AVL

平衡二叉树平衡二叉搜索树又被称为AVL树,且具有性质:对于任意一个节点,其左子树和右子树的高度差不能超过1.。节点高度我们要维持树的自平衡结构,就要计算平衡因子,根据平衡因子予以调整,而计算平衡因子就需要标注节点的高度,叶子节点对应的高度为1,对于有左子树和右子树的节点,对应的高度为左右子树中最高的子树高度加一,所以标注节点可以这样写: // 获得节点node的高度 private int getHeight(Node node){ if(node == null)

2020-05-23 20:07:25 189

原创 【玩转数据结构 从入门到进阶12学习笔记】红黑树

2-3树二叉查找树中树高会受到输入数据的影响,极端情况下一棵树和一个链表没什么区别,所以我们需要一种树,它的所有叶节点到根节点的距离都是相等的,这种树为平衡树,并且随着数据的加入,这种平衡性会一直保持,它就是2-3查找树,它是一棵绝对平衡的树。如上图,存放一个元素的为2节点,存放两个元素的为3节点,对于2节点,它与二叉查找树特性相同,左链接比节点值小,右链接比节点值大,而对于3节点,它有三个链接,左链接指向的左子树所有元素都小于3节点的两个键,中间链接指向的子树元素大小介于两个键中间,右链接指向的子树

2020-05-23 17:50:50 166

原创 【玩转数据结构 从入门到进阶9学习笔记】字典树Trie

什么是Trie上图便是一棵字典树,它是一棵多叉树,它通常只用来处理字符串,当数据为单词的时候,把单词以字母为单位一个一个拆开,从根节点开始,一直到叶子节点去遍历,每遍历到一个叶子节点形成一个单词。所以它的时间复杂度为O(w),w为字符串的长度。字典树还有一个问题,就是当一个单词的前缀也为一个单词,如pan为平底锅,是panda的前缀,该如何表示,我们就需要一个标识符,去标识该节点是一个单词的结尾,我们还用到了映射,一个字符对应一个节点,这两部分构成了字典树的基本节点类字典树基础public cla

2020-05-21 15:47:51 148

原创 【玩转数据结构 从入门到精通8学习笔记】线段树

线段树(区间树)首先来看我们为什么需要使用线段树,可以来看一个经典问题,区间查询,使用线段树可以优化时间复杂度,使用数组实现为O(n),而使用线段树为O(lgn)。对于查询,查询一个区间的最大值,最小值,或者区间数字和,都可看做是左右两孩子的融合过程,所以在实现上依然可以使用递归由下图可以看出线段树不是完全二叉树,它是一个平衡二叉树,何为平衡二叉树?它或者是一颗空树,或者具有以下性质的二叉树:它的左子树和右子树的深度之差(平衡因子)的绝对值不超过1,且它的左子树和右子树都是一颗平衡二叉树。那么

2020-05-21 10:39:32 121

原创 【玩转数据结构 从入门到进阶7学习笔记】堆与优先队列

优先队列何为优先队列?优先队列:出队顺序与入队顺序无关,和优先级有关为什么要使用优先对列?动态选择优先级最高的任务执行实现优先对列可以有多种底层数据结构,在这里我们使用堆这个数据结构堆二叉堆是一棵完全二叉树,完全二叉树,简单来说,就是把元素顺序排列成树的形状,从左到右一层一层的放,放完为止最大堆–堆中某个节点的值总是不大于其父节点的值,如上图可以使用动态数组来实现堆,其中parent(i)=(i-1)/2, leftchild(i)=2i+1, rightchild(i)=2

2020-05-20 17:31:57 141

原创 【玩转数据结构 从入门到进阶6学习笔记】集合与映射

集合只要实现以下方法就可实现一个简单的集合public interface Set<E> { void add(E e);//不能添加元素 void remove(E e); boolean contains(E e); int getSize(); boolean isEmpty();}可以使用二分搜索树和链表实现集合,首先来看一下二分搜索树的实现,我们这里导入之前创建的BST类,注意这里的泛型要实现Comparable接口,import j

2020-05-19 21:31:23 169

原创 【玩转数据结构 从入门到进阶5 学习笔记】二分搜索树

二分搜索树什么是二分搜索树?二分搜索树是二叉树,二分搜索树的,每个节点比左子树的所有节点的值都大,比右子树的所有节点值小,,每一棵子树也是二分搜索树其中,二分搜索树存储的数据具有可比性,所以在定义泛型接口时要注意实现Comparable接口接着来看二叉树的基本结构,它与链表一样,动态数据结构private class Node{ public E e; public Node left,right; public Node(E e){

2020-05-18 20:33:42 155

原创 【玩转数据结构 从入门到进阶4学习笔记】

递归递归,本质上是将原来的问题转化为同一更小的问题,比如数组求和 // 计算arr[l...n)这个区间内所有数字的和 private static int sum(int[] arr, int l){ if(l == arr.length) return 0; return arr[l] + sum(arr, l + 1); }链表中的递归public ListNode removeElements(ListNo

2020-05-16 17:25:42 204

原创 【玩转数据结构 从入门到进阶3学习笔记】链表

链表这里结点类Node可以作为内部类,放在链表类里基本结构public class LinkedList<E> { private class Node { public E e; public Node next; public Node(E e, Node next) { this.e = e; this.next = next; } publ

2020-05-15 22:17:55 134

原创 【玩转数据结构 从入门到进阶2学习笔记】栈和队列

栈可以先来看看栈的应用,上图是程序调用的系统栈,箭头方向指明了程序运行顺序,我们运行到A2时把它压入栈,接着跳到B,执行到B2时再把它压入栈,再执行C,执行完C,我们可以看栈顶,是B2,我们跳回B2继续执行,B执行完后再看栈顶,是A2,跳回A2继续执行,A执行完后,栈空,程序结束,从这可以看出栈在程序调用问题上给出了很好的解决方法。栈的基本实现我们要如何实现一个栈呢,其实很简单,只要实现以下几个方法栈有推入,拿出操作,peek操作是查询并获取栈顶元素,还有获取栈内元素个数和判断是否为空,所以我

2020-05-15 16:52:45 119

原创 【玩转数据结构 从入门到进阶1学习笔记】数组

封装属于自己的数组封装一个属于自己的数组,可以进行增删改查等操作,还可以不同的数据类型,以自己的格式输出。下面是数组里的方法一览add方法想要在指定位置添加一个元素,那么这个位置后面的元素必须全部向后移一位,我们可以从最后一个元素开始遍历,每个元素向后移一位,移完后则指定位置空余出来,再将元素添加进去,在此之前,我们还要判断元素是否已经填满数组,还要输入的指定值是否小于0或者大于元素个数,完成这个方法后,我们可以在首尾添加元素时将此方法复用 public void add(int index,E

2020-05-14 21:27:05 166

原创 【数据结构基础】哈希查找

哈希表定义:根据设定的哈希函数 H(key) 和提供的处理冲突的方法,将一组关键字映象到一个地址连续的地址空间上,并以关键字在地址空间中的“象”作为相应记录在表中的存储位置,如此构造所得的查找表称之为哈希表。散列存储的基本思路:以数据中每一个元素的keywordK为自变量。通过散列函数H(k)计算出函数值,以该函数值作为一块连续存储空间的的单元地址,将该元素存储到函数值相应的单元中。时间复杂度:哈希表存储的是键值对,其查找的时间复杂度与元素数量多少无关。哈希表在查找元素时是通过计算哈希码值来定位

2020-05-12 12:11:34 1124

转载 Mybatis如何防止SQL注入

什么是SQL注入攻击SQL注入,大家都不陌生,是一种常见的攻击方式。攻击者在界面的表单信息或URL上输入一些奇怪的SQL片段(例如“or ‘1’=’1’”这样的语句),有可能入侵参数检验不足的应用程序。所以,在我们的应用中需要做一些工作,来防备这样的攻击方式。例如攻击者会将passwd的参数输入为“ ’ or ‘1’ = '1 ”;那么直接使用Statement,则打印出来的SQL语句如下:select * from tb_name = '随意' and passwd = '' or '1' = '1

2020-09-23 23:50:07 2678

原创 TOP K算法 统计英文电子书中出现次数最多的k个单词

统计一个大文件里出现次数top k的单词具体实现步骤:1、遍历文本,统计不同单词出现的次数(这里要注意判别是否是单词)。2、对map的value进行降序排列(这里运用了java中collections.sort()方法来排序),列出前十个单词。import java.util.*;import java.util.Map.Entry;import java.io.*;import junit.framework.TestCase; public class search { pu

2020-09-06 16:59:20 450

转载 字节跳动

链表翻转、插入、删除反转class Solution { public ListNode reverseList(ListNode head) { if(head==null||head.next==null){ return head; } ListNode cur=head; ListNode reversehead=null; ListNode temp=null;

2020-09-03 00:06:30 512

原创 奇安信笔试8.1-8.15-9.2

老板发钱老板共有n元,每次发奖金可以发1元,2元,3元,请问发n元一共有多少种发的方法?import java.util.Scanner;public class qianxin { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n=in.nextInt(); int []dp=new int[n+1]; if(

2020-08-31 19:53:00 983

原创 科大讯飞

1.礼物价值的最大化/** * @Author Baker.chen * @create 2020/8/29 20:31 * * 礼物价值最大化 * 思路:创建一个二维数组dp[][],dp[i][j]代表的是从二维数组的左上角元素走到dp[i][j]这个单元格的最大价值 * 状态转移方程为:dp[i][j] = Math.max(dp[i - 1][j], dp[i][j - 1]) + dp[i][j] */public class Main { public static

2020-08-30 21:49:22 231

转载 猜数游戏

题目牛牛和羊羊在玩一个有趣的猜数游戏。在这个游戏中,牛牛玩家选择一个正整数,羊羊根据已给的提示猜这个数字。第i个提示是"Y"或者"N",表示牛牛选择的数是否是i的倍数。例如,如果提示是"YYNYY",它表示这个数使1,2,4,5的倍数,但不是3的倍数。注意到一些提示会出现错误。例如: 提示"NYYY"是错误的,因为所有的整数都是1的倍数,所以起始元素肯定不会是"N"。此外,例如"YNNY"的提示也是错误的,因为结果不可能是4的倍数但不是2的倍数。现在给出一个整数n,表示已给的提示的长度。请计算出长度

2020-08-24 16:35:06 306

原创 华为机试108题

统计大写字母个数找出给定字符串中大写字符(即’A’-‘Z’)的个数接口说明原型:int CalcCapital(String str);返回值:int输入:add123#$%#%#O输出:1import java.util.Scanner;import java.util.Set;import java.util.HashSet;public class Main{ public static void main(String [] args){ S

2020-08-09 23:50:33 518

原创 华为2016软件研发笔试题

1删数有一个数组a[N]顺序存放0~N-1,要求每隔两个数删掉一个数,到末尾时循环至开头继续进行,求最后一个被删掉的数的原始下标位置。以8个数(N=7)为例:{0,1,2,3,4,5,6,7},0->1->2(删除)->3->4->5(删除)->6->7->0(删除),如此循环直到最后一个数被删除。输入描述:每组数据为一行一个整数n(小于等于1000),为数组成员数,如果大于1000,则对a[999]进行计算。输入:8输出:6import jav

2020-08-08 22:23:57 189

原创 华为2017软件研发编程笔试题

1有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?思路:递归问题3个瓶子换1瓶水+1个空瓶子,两个瓶子换1瓶水+0个空瓶子,1个瓶子换0瓶水。f(1) = 0f(2)

2020-08-08 20:20:17 376

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除