- 15. 3Sum
jecyhw
题目链接https://leetcode.com/problems/3sum/解题思路题目要使得a+b+c=0,且不重复,那就可以按照a>threeSum(vector&nums){vector>ans;intlen=nums.size()-1;if(len0){break;}if(i>0&&nums[i]==nums[i-1]){//a和前一个数相等,也不再找continue;}//最右边的两个
- 力扣组队刷题打卡第四次
阿水ashui
文章目录二.对撞指针LeetCode1TwoSum题目描述审题:分析实现暴力法O(n^2)排序+指针对撞(O(n)+O(nlogn)=O(n))小套路:更加pythonic的实现查找表--O(n)补充思路:LeetCode153Sum题目描述审题分析实现没有考虑重复元素导致错误代码实现小套路LeetCode184Sum题目描述题目分析超出时间限制LeetCode163SumClosest题目描述分
- 【前端小技巧】不同组件中如何实现点击空白关闭自定义的弹窗
Luxine.
前端分享前端
直接上代码吧处理函数closest的参数是弹窗的类名consthandleClickOutside=(event:MouseEvent)=>{consttarget=event.targetasHTMLElement;if(!target.closest('.popUpClassName')){//控制弹窗显示隐藏的变量ispopup.value=false;}};绑定到document上docu
- 第三天 4 Sum
业余马拉松选手
哈哈,继续在前两天的基础之上,4Sum问题https://leetcode-cn.com/problems/4sum/description/对于这种列表的题目,继续要排个序,开始想过类似分治的方法,但好像路走不通,那么本着解决问题的思路,就先继续“退化”的路,这里就是通过循环,把4Sum变成了3Sum,然后再变成2Sum,基于排序,那么就可以用双指针法。原本写出来之后,以为会超时,但没想到竟然低
- Closest Binary Search Tree Value
BLUE_fdf9
题目Givenanon-emptybinarysearchtreeandatargetvalue,findthevalueintheBSTthatisclosesttothetarget.答案classSolution{publicintclosestValue(TreeNoderoot,doubletarget){TreeNodecurr=root;intans=root.val;while(c
- leetcode刷题-最接近的三位数之和
顺利毕业(研)
leetcode算法python
1.题目描述2.解题思路其实这个题目的解题思路,和昨天写的两个题目差不多,定义两个指针,进行排序,避免多次大量循环,减少时间复杂度。在上次的基础上进行了一个比较小的改动。3.代码classSolution:defthreeSumClosest(self,nums:List[int],target:int)->int:#仍然使用双指针的方法进行计算nums.sort()ans=nums[0]+num
- leetcode题目记录
&orange
leetcode算法
文章目录单调栈[127.单词接龙](https://leetcode.cn/problems/word-ladder/)[139.单词拆分](https://leetcode.cn/problems/word-break/)[15.三数之和](https://leetcode.cn/problems/3sum/)[140.单词拆分II](https://leetcode.cn/problems/w
- The math behind Inverse Distance Weighting
了无_数据科学
There’snothingtobeafraidofwithIDWmath.Rememberthatthesearchdistanceorthenumberofclosestpointsdetermineshowmanypointswillbeused.Weusethe3closestpointsinthisexample:IDW-Closest3KnownPointsHere’swhatthet
- 算法题(5)
哆啦C梦的百宝箱
题目最接近的三数之和给你一个长度为n的整数数组nums和一个目标值target。请你从nums中选出三个整数,使它们的和与target最接近。返回这三个数的和。假定每组输入只存在恰好一个解。https://leetcode.cn/problems/3sum-closest/description/解题暴力解法varthreeSumClosest=function(nums,target){lets
- CPD\Super 4PCS点云配准
jjm2002
点云配准C++点云c++
一、CPDCPD(CoherentPointDrift)配准算法在C++中并没有直接的开源实现。但是有一些社区成员已经自行实现了CPD算法,比如libpointmatcher库。使用libpointmatcher库实现CPD配准的基本步骤如下:安装libpointmatcher库。你可以在GitHub-norlab-ulaval/libpointmatcher:AnIterativeClosest
- 使用 VTK 中的单元定位器来查找最近的点
XX風
vtk计算机视觉c++
开发环境:Windows11家庭中文版MicrosoftVisualStudioCommunity2019VTK-9.3.0.rc0vtk-exampledemo解决问题:使用VTK中的单元定位器来查找最近的点关键点:创建了一个球体数据源,并使用它构建了一个单元定位器(celllocator)。通过FindClosestPoint方法查找了测试点的最近点,并输出了最近点的坐标、到最近点的距离的平方
- LeetCode 3Sum Closest
manyGrasses
题目Givenanarraynumsofnintegersandanintegertarget,findthreeintegersinnumssuchthatthesumisclosesttotarget.Returnthesumofthethreeintegers.Youmayassumethateachinputwouldhaveexactlyonesolution.Example:Given
- LeetCode 973 K Closest Points to Origin
被称为L的男人
题目描述Wehavealistofpointsontheplane.FindtheKclosestpointstotheorigin(0,0).(Here,thedistancebetweentwopointsonaplaneistheEuclideandistance.)Youmayreturntheanswerinanyorder.Theanswerisguaranteedtobeunique
- 【leetcode刷题】15. 3Sum
maodoudou168
原题链接:https://leetcode.com/problems/3sum/解题思路:首先将数组进行排序,排序过后i对整个列表进行遍历,j从i+1开始遍历,k从最后一位往前遍历。要使三个数的sum为零,即nums[i]+nums[j]+nums[k]=0相当于使nums[j]+nums[k]=-nums[i]当nums[j]+nums[k]>nums[i]时,说明需要减小nums[j]+num
- 【Lintcode】612 k closest points
云端漫步_b5aa
在heap里就要排序,先按d排序,第二是x,第三是y?1维持一个大小为K的max-heap2然后后面每push一个进来,就把最长距离那个pop出去3所以push进heap的值是负的distance,因为到时候可以把最远距离的给pop出去"""Definitionforapoint.classPoint:def__init__(self,a=0,b=0):self.x=aself.y=b"""cla
- closest的用法
_陌默
JavaScriptjavascript
1.closest的概念Element.closest()是一个DOM(文档对象模型)方法,用于从当前元素开始,沿着DOM树向上遍历,直到找到匹配指定选择器的第一个元素。如果没有找到匹配的元素,则返回null。2.closest的使用场景需求描述:对于一个已经写好的网站,网站中所有的a标签点击的时候都是以新的tab页的方式打开,但是目前期望所有的都以在当前页面的方式打开。初步实现:document
- IterativeClosestPoint<PointXYZL, PointXYZL, double>类是 PCL (Point Cloud Library) 中用于执行迭代最近点(ICP)算法的
小秋 AI SLAM入门实战
slampcl
文章目录匹配效果代码编译文件代码解读IterativeClosestPoint类是PCL(PointCloudLibrary)中用于执行迭代最近点(ICP)算法的类。这个算法用于计算两个点云之间的最佳对齐(即找到一个刚体变换,使得一个点云尽可能接近另一个点云)。以下是这个类的一些常用函数和它们的用法:setInputSource用于设置源点云(要对齐的点云)。用法:icp.setInputSour
- Leetcode 中等:16. 最接近的三数之和
青少年编程小助手_Python
leetcode算法职场和发展
题目:最接近的三数之和题号:16难度:中等https://leetcode-cn.com/problems/3sum-closest/给你一个长度为n的整数数组nums和一个目标值target。请你从nums中选出三个整数,使它们的和与target最接近。返回这三个数的和。假定每组输入只存在恰好一个解。示例1:输入:nums=[-1,2,1,-4],target=1输出:2解释:与target最接
- [二分]力扣找到k个最接近的元素(c++实现)
随风而散y
算法leetcodec++算法
classSolution{public:vectorfindClosestElements(vector&arr,intk,intx){vectorres;intl=0,r=arr.size()-1;while(l=x)r=mid;elsel=mid+1;}inti=l-1,j=r;while(res.size()=arr.size()||(i>=0&&x-arr[i]<=arr[j]-x)){
- 三数之和----双指针
夹心宝贝
双指针OJ题算法双指针
https://leetcode.cn/problems/3sum/description/?envType=study-plan-v2&envId=top-100-liked“三数之和”在某些人的口中被叫做“程序员之梦破碎的地方”。既然如此,这个题肯定是有难度的,尤其是其中的细节,很多,很细。其中nums代表给定的数组,numsSize代表给定数组nums的元素个数。returnSize记录返回
- 'numpy.ndarray' object is not callable 报错
东都大白兔
Python杂七杂八
在机器学习KNN时,出现'numpy.ndarray'objectisnotcallable报错,此类错误一般是由于内部函数被用作变量名时发生。我的代码closest_y=self.y_train(thelist)这里变量名被用作函数了,我想引用y_train的第thelist个,结果写成了(),在Python中应为[]故closest_y=self.y_train[thelist]
- Educational Codeforces Round 161 (Rated for Div. 2)(A-C)
听听听搁浅
cfc语言算法图论
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录A.TrickyTemplate题意:题解:代码:B.FormingTriangles题意:题解:代码:C.ClosestCities题意:题解:代码:A.TrickyTemplate题意:给出三个由小写字母组成的字符串a,b,c,问是否存在一个模板串t,使得a,b与模板串相匹配,c与模板串不匹配。匹配条件有两个,若t的某个字
- 【寒假复健Day3】Educational Codeforces Round 161(div. 2)
MultipleIssue
Codeforces算法数据结构
EducationalCodeforcesRound161(div.2)-题解EducationalCodeforcesRound161(div.2)文章目录EducationalCodeforcesRound161(div.2)-题解@[toc]A-TrickyTemplateB-FormingTrianglesC-ClosestCitiesD-BerserkMonstersE-Increasi
- edu round 161 C Closest Cities
晒太阳的猪咪
cf补题算法c++
题意有t组数据,每组数据包括一个n,表示接下来数组a中元素的个数。有一个单调递增的数组a,a[i]表示每个城市在一个数轴上的坐标,对于每个城市,都有唯一的一个最近城市(左右城市的其中之一),前往最近城市所需要的钱为1,非最近城市所需要的钱为两坐标之差,接下来m个询问,每个询问求出从l城市走到r城市所需要的最少的钱。输入150812152051415343251输出381414思路按照走的方向分为从
- Unity中获取触发器触发点和碰撞器触发点
我寄人间雪满头丶
Unity学习unitypython
触发器不能直接获取碰撞点,但是可以通过获取离该包围盒上最近的点来判断。privatevoidOnTriggerEnter2D(Collider2Dother){hitPos=other.bounds.ClosestPoint(transform.position);print("碰撞点"+hisPos);}碰撞器可以直接取到碰撞点publicvirtualvoidOnCollisionEnter(
- 在一个PHP中调用另一个php函数,php调用函数 php如何调用函数?
weixin_39567870
php如何调用函数?1.递推2.回归递推:递推为正向的推导,即从前向后的分析问题,寻找递推的条件。1-3求和为例sum(1)=10sum(2)=21sum(3)=321可发现sum(1)=10sum(2)=2sum(2-1)sum(3)=3sum(3-1)这样一来把求sum(3)转为求sum(2)的把求sum(2)的转为求sum(1)回归自后向前再追逆一遍。论证前期推导的正确性。经过以上分析所以得
- 实现scan-to-map匹配,使用NDT的C++代码实现(2)
稻壳特筑
C++激光SLAMc++开发语言
目录算法原理:性能和适用性:实现细节:C++实现:使用C++实现scan-to-map匹配时,选择正态分布变换(NormalDistributionsTransform,NDT)与迭代最近点(IterativeClosestPoint,ICP)算法,存在几个关键区别。这些区别主要体现在算法的原理、性能、适用场景以及实现细节上。算法原理:ICP:ICP算法通过迭代地匹配两组点云之间最近的点来计算最优
- 点云对齐函数icp.align(*result)
稻壳特筑
C++算法人工智能前端
目录icp.align(*result)的含义和用途:icp.align(*result)的返回值:icp.align(*result)的含义和用途:使用PCL(PointCloudLibrary)或类似的库进行点云处理时,icp.align(*result)是一个常见的方法调用。这里的icp通常是一个迭代最近点(IterativeClosestPoint,简称ICP)算法的实例,而align是执
- 2024.1.19 寒假训练记录(2)
Texcavator
2024寒假训练记录算法
昨晚的cf打得非常抽象,成功从蓝掉到青,不过在心理预期范围内,可以接受,之后每一场都会跟着打大号,能力的提升比表面上的分数更加重要文章目录CF1922ATrickyTemplateCF1922BFormingTrianglesCF1922CClosestCitiesCF1922DBerserkMonstersCF1805AWeNeedtheZeroCF1805BTheStringHasaTarge
- 机器学习(八) — K-means
绘梨衣吖
机器学习机器学习kmeans人工智能
model5—K-means1definitionrandomlyinitializeKclustercentroidsμ1,μ2,⋯\mu_1,\mu_2,\cdotsμ1,μ2,⋯repeat:assigneachpointtoitsclosestcentroidμ\muμrecomputethecentroids(averageoftheclosestpoint)2optimazationo
- 对股票分析时要注意哪些主要因素?
会飞的奇葩猪
股票 分析 云掌股吧
众所周知,对散户投资者来说,股票技术分析是应战股市的核心武器,想学好股票的技术分析一定要知道哪些是重点学习的,其实非常简单,我们只要记住三个要素:成交量、价格趋势、振荡指标。
一、成交量
大盘的成交量状态。成交量大说明市场的获利机会较多,成交量小说明市场的获利机会较少。当沪市的成交量超过150亿时是强市市场状态,运用技术找综合买点较准;
- 【Scala十八】视图界定与上下文界定
bit1129
scala
Context Bound,上下文界定,是Scala为隐式参数引入的一种语法糖,使得隐式转换的编码更加简洁。
隐式参数
首先引入一个泛型函数max,用于取a和b的最大值
def max[T](a: T, b: T) = {
if (a > b) a else b
}
因为T是未知类型,只有运行时才会代入真正的类型,因此调用a >
- C语言的分支——Object-C程序设计阅读有感
darkblue086
applec框架cocoa
自从1972年贝尔实验室Dennis Ritchie开发了C语言,C语言已经有了很多版本和实现,从Borland到microsoft还是GNU、Apple都提供了不同时代的多种选择,我们知道C语言是基于Thompson开发的B语言的,Object-C是以SmallTalk-80为基础的。和C++不同的是,Object C并不是C的超集,因为有很多特性与C是不同的。
Object-C程序设计这本书
- 去除浏览器对表单值的记忆
周凡杨
html记忆autocompleteform浏览
&n
- java的树形通讯录
g21121
java
最近用到企业通讯录,虽然以前也开发过,但是用的是jsf,拼成的树形,及其笨重和难维护。后来就想到直接生成json格式字符串,页面上也好展现。
// 首先取出每个部门的联系人
for (int i = 0; i < depList.size(); i++) {
List<Contacts> list = getContactList(depList.get(i
- Nginx安装部署
510888780
nginxlinux
Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源
- java servelet异步处理请求
墙头上一根草
java异步返回servlet
servlet3.0以后支持异步处理请求,具体是使用AsyncContext ,包装httpservletRequest以及httpservletResponse具有异步的功能,
final AsyncContext ac = request.startAsync(request, response);
ac.s
- 我的spring学习笔记8-Spring中Bean的实例化
aijuans
Spring 3
在Spring中要实例化一个Bean有几种方法:
1、最常用的(普通方法)
<bean id="myBean" class="www.6e6.org.MyBean" />
使用这样方法,按Spring就会使用Bean的默认构造方法,也就是把没有参数的构造方法来建立Bean实例。
(有构造方法的下个文细说)
2、还
- 为Mysql创建最优的索引
annan211
mysql索引
索引对于良好的性能非常关键,尤其是当数据规模越来越大的时候,索引的对性能的影响越发重要。
索引经常会被误解甚至忽略,而且经常被糟糕的设计。
索引优化应该是对查询性能优化最有效的手段了,索引能够轻易将查询性能提高几个数量级,最优的索引会比
较好的索引性能要好2个数量级。
1 索引的类型
(1) B-Tree
不出意外,这里提到的索引都是指 B-
- 日期函数
百合不是茶
oraclesql日期函数查询
ORACLE日期时间函数大全
TO_DATE格式(以时间:2007-11-02 13:45:25为例)
Year:
yy two digits 两位年 显示值:07
yyy three digits 三位年 显示值:007
- 线程优先级
bijian1013
javathread多线程java多线程
多线程运行时需要定义线程运行的先后顺序。
线程优先级是用数字表示,数字越大线程优先级越高,取值在1到10,默认优先级为5。
实例:
package com.bijian.study;
/**
* 因为在代码段当中把线程B的优先级设置高于线程A,所以运行结果先执行线程B的run()方法后再执行线程A的run()方法
* 但在实际中,JAVA的优先级不准,强烈不建议用此方法来控制执
- 适配器模式和代理模式的区别
bijian1013
java设计模式
一.简介 适配器模式:适配器模式(英语:adapter pattern)有时候也称包装样式或者包装。将一个类的接口转接成用户所期待的。一个适配使得因接口不兼容而不能在一起工作的类工作在一起,做法是将类别自己的接口包裹在一个已存在的类中。 &nbs
- 【持久化框架MyBatis3三】MyBatis3 SQL映射配置文件
bit1129
Mybatis3
SQL映射配置文件一方面类似于Hibernate的映射配置文件,通过定义实体与关系表的列之间的对应关系。另一方面使用<select>,<insert>,<delete>,<update>元素定义增删改查的SQL语句,
这些元素包含三方面内容
1. 要执行的SQL语句
2. SQL语句的入参,比如查询条件
3. SQL语句的返回结果
- oracle大数据表复制备份个人经验
bitcarter
oracle大表备份大表数据复制
前提:
数据库仓库A(就拿oracle11g为例)中有两个用户user1和user2,现在有user1中有表ldm_table1,且表ldm_table1有数据5千万以上,ldm_table1中的数据是从其他库B(数据源)中抽取过来的,前期业务理解不够或者需求有变,数据有变动需要重新从B中抽取数据到A库表ldm_table1中。
- HTTP加速器varnish安装小记
ronin47
http varnish 加速
上午共享的那个varnish安装手册,个人看了下,有点不知所云,好吧~看来还是先安装玩玩!
苦逼公司服务器没法连外网,不能用什么wget或yum命令直接下载安装,每每看到别人博客贴出的在线安装代码时,总有一股羡慕嫉妒“恨”冒了出来。。。好吧,既然没法上外网,那只能麻烦点通过下载源码来编译安装了!
Varnish 3.0.4下载地址: http://repo.varnish-cache.org/
- java-73-输入一个字符串,输出该字符串中对称的子字符串的最大长度
bylijinnan
java
public class LongestSymmtricalLength {
/*
* Q75题目:输入一个字符串,输出该字符串中对称的子字符串的最大长度。
* 比如输入字符串“google”,由于该字符串里最长的对称子字符串是“goog”,因此输出4。
*/
public static void main(String[] args) {
Str
- 学习编程的一点感想
Cb123456
编程感想Gis
写点感想,总结一些,也顺便激励一些自己.现在就是复习阶段,也做做项目.
本专业是GIS专业,当初觉得本专业太水,靠这个会活不下去的,所以就报了培训班。学习的时候,进入状态很慢,而且当初进去的时候,已经上到Java高级阶段了,所以.....,呵呵,之后有点感觉了,不过,还是不好好写代码,还眼高手低的,有
- [能源与安全]美国与中国
comsci
能源
现在有一个局面:地球上的石油只剩下N桶,这些油只够让中国和美国这两个国家中的一个顺利过渡到宇宙时代,但是如果这两个国家为争夺这些石油而发生战争,其结果是两个国家都无法平稳过渡到宇宙时代。。。。而且在战争中,剩下的石油也会被快速消耗在战争中,结果是两败俱伤。。。
在这个大
- SEMI-JOIN执行计划突然变成HASH JOIN了 的原因分析
cwqcwqmax9
oracle
甲说:
A B两个表总数据量都很大,在百万以上。
idx1 idx2字段表示是索引字段
A B 两表上都有
col1字段表示普通字段
select xxx from A
where A.idx1 between mmm and nnn
and exists (select 1 from B where B.idx2 =
- SpringMVC-ajax返回值乱码解决方案
dashuaifu
AjaxspringMVCresponse中文乱码
SpringMVC-ajax返回值乱码解决方案
一:(自己总结,测试过可行)
ajax返回如果含有中文汉字,则使用:(如下例:)
@RequestMapping(value="/xxx.do") public @ResponseBody void getPunishReasonB
- Linux系统中查看日志的常用命令
dcj3sjt126com
OS
因为在日常的工作中,出问题的时候查看日志是每个管理员的习惯,作为初学者,为了以后的需要,我今天将下面这些查看命令共享给各位
cat
tail -f
日 志 文 件 说 明
/var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一
/var/log/secure 与安全相关的日志信息
/var/log/maillog 与邮件相关的日志信
- [应用结构]应用
dcj3sjt126com
PHPyii2
应用主体
应用主体是管理 Yii 应用系统整体结构和生命周期的对象。 每个Yii应用系统只能包含一个应用主体,应用主体在 入口脚本中创建并能通过表达式 \Yii::$app 全局范围内访问。
补充: 当我们说"一个应用",它可能是一个应用主体对象,也可能是一个应用系统,是根据上下文来决定[译:中文为避免歧义,Application翻译为应
- assertThat用法
eksliang
JUnitassertThat
junit4.0 assertThat用法
一般匹配符1、assertThat( testedNumber, allOf( greaterThan(8), lessThan(16) ) );
注释: allOf匹配符表明如果接下来的所有条件必须都成立测试才通过,相当于“与”(&&)
2、assertThat( testedNumber, anyOf( g
- android点滴2
gundumw100
应用服务器android网络应用OSHTC
如何让Drawable绕着中心旋转?
Animation a = new RotateAnimation(0.0f, 360.0f,
Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,0.5f);
a.setRepeatCount(-1);
a.setDuration(1000);
如何控制Andro
- 超简洁的CSS下拉菜单
ini
htmlWeb工作html5css
效果体验:http://hovertree.com/texiao/css/3.htmHTML文件:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>简洁的HTML+CSS下拉菜单-HoverTree</title>
- kafka consumer防止数据丢失
kane_xie
kafkaoffset commit
kafka最初是被LinkedIn设计用来处理log的分布式消息系统,因此它的着眼点不在数据的安全性(log偶尔丢几条无所谓),换句话说kafka并不能完全保证数据不丢失。
尽管kafka官网声称能够保证at-least-once,但如果consumer进程数小于partition_num,这个结论不一定成立。
考虑这样一个case,partiton_num=2
- @Repository、@Service、@Controller 和 @Component
mhtbbx
DAOspringbeanprototype
@Repository、@Service、@Controller 和 @Component 将类标识为Bean
Spring 自 2.0 版本开始,陆续引入了一些注解用于简化 Spring 的开发。@Repository注解便属于最先引入的一批,它用于将数据访问层 (DAO 层 ) 的类标识为 Spring Bean。具体只需将该注解标注在 DAO类上即可。同时,为了让 Spring 能够扫描类
- java 多线程高并发读写控制 误区
qifeifei
java thread
先看一下下面的错误代码,对写加了synchronized控制,保证了写的安全,但是问题在哪里呢?
public class testTh7 {
private String data;
public String read(){
System.out.println(Thread.currentThread().getName() + "read data "
- mongodb replica set(副本集)设置步骤
tcrct
javamongodb
网上已经有一大堆的设置步骤的了,根据我遇到的问题,整理一下,如下:
首先先去下载一个mongodb最新版,目前最新版应该是2.6
cd /usr/local/bin
wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.6.0.tgz
tar -zxvf mongodb-linux-x86_64-2.6.0.t
- rust学习笔记
wudixiaotie
学习笔记
1.rust里绑定变量是let,默认绑定了的变量是不可更改的,所以如果想让变量可变就要加上mut。
let x = 1; let mut y = 2;
2.match 相当于erlang中的case,但是case的每一项后都是分号,但是rust的match却是逗号。
3.match 的每一项最后都要加逗号,但是最后一项不加也不会报错,所有结尾加逗号的用法都是类似。
4.每个语句结尾都要加分