- element周选择器---设置展示周和日期
GLINLIND
vueelementjavascript前端vue.jshtml5
element周选择器:粘贴可用实现效果:—代码:npminstalldayjs--savemain.jsimportdayjsfrom"dayjs";Vue.prototype.dayjs=dayjs;页面data(){return{value2:"",week:"",//周startTimeStamp:
- unplugin-vue-components
WebCsDn_TDCode
vue.js
unplugin-vue-components是一个用于Vue.js的自动化组件导入插件,它支持与多种UI库和插件集成,以简化组件注册和使用流程。以下是一些它可以引入或支持的常见插件和UI库:以下是一个在Vue2.7.16+Element-UI2.15.14环境中使用unplugin-vue-components实现组件自动导入的简明实例:1.安装依赖npminstallunplugin-vue-
- Gitee 持续集成与交付(CI/CD)篇
Gitee持续集成与交付(CI/CD)篇文章目录Gitee持续集成与交付(CI/CD)篇什么是CI/CD?GiteeGo介绍✨核心特性支持的技术栈提交项目进行CI/CD第一步:创建.gitee-ci.yml文件第二步:配置项目设置第三步:提交代码触发构建制品库配置Maven制品库配置Docker制品库配置npm制品库配置⚙️流水线配置示例与实践JavaSpringBoot项目示例Vue.js前端项
- 实用前端vue页面引入 .md文件
xqqwyy
vuevue.js前端javascriptvue
项目场景:提示:这里简述项目相关背景:vue前端页面引入.md文件解决方案:提示:这里填写该问题的具体解决方案:1.安装依赖npminstallvue-markdown-loader--save2.vue.config.js中配置chainWebpack:config=>{config.module.rule("md").test(/\.md/).use("vue-loader").loader(
- vue3+vite 项目引入加载.md文件
代码界周雨彤
前端vue
1.使用插件v-md-editor,下载npmi@kangc/v-md-editor@next-S官网地址可查看文档,介绍|v-md-editor2.第二步,在main.ts引入//引入v-md-editor组件importVMdPreviewfrom'@kangc/v-md-editor/lib/preview'importvuepressThemefrom'@kangc/v-md-editor
- Vue 实现拖拉拽组件 vue-draggable-plus
清风细雨_林木木
Vue其他vue.js前端javascript
vue-draggable-plus是一个基于Sortable.js的Vue拖拽组件库,是vuedraggable的升级替代品,支持Vue2和Vue3,功能更强,类型更完善,维护更活跃。特点同时支持Vue2和Vue3完整类型支持(TypeScript)拖拽排序、嵌套列表、拖入拖出基于原生Sortable.js,功能丰富支持v-model双向绑定安装npminstallvue-draggable-p
- Vue 2 项目中内嵌 md 文件
清风细雨_林木木
Vuevue.js前端javascript
推荐方案:raw-loader+marked解析Markdown第一步:安装依赖npminstallmarked--savenpminstallraw-loader--save-dev第二步:配置webpack支持.md文件打开vue.config.js或webpack.config.js,添加以下配置:module.exports={chainWebpack:config=>{config.mo
- Vue3项目引入高德地图【超详细教程】
年纪轻轻就扛不住
VUE前端javascriptvue.jsvue前端框架
前言在Vue3项目中集成高德地图(AMap)是一个常见的需求。本文将详细介绍如何在Vue3项目中使用高德地图,包括安装配置、基本使用以及一些进阶功能的实现。一、环境准备1.1vue3项目初始化步骤1:初始化项目npmcreatevite@latest步骤2:按提示选择配置✔Projectname:…your-project-name#输入项目名称✔Selectaframework:›Vue#选择框
- vue-i18n的实际使用场景
大眼小夫
vue.jsjavascript前端
最近有一个国外的项目需要做多语言切换,想到了使用i18n,这里就把我的使用经验写下来。1,安装vue2安装8版本vue3安装9版本pnpminstallvue-i18n@9--savepnpminstallvue-i18n@8--save2,配置i18n安装完成后在vue项目src目录下新建一个ts文件,命名i18n.ts我们在这个文件里写入我们的配置文件import{createI18n}fro
- 使用 ESLint + Prettier + Husky + lint-staged 构建统一的代码风格及检查工作流
爱宇阳
VueGIThuskylint-staged
现代前端开发中,维护代码一致性和避免低级错误是团队协作的关键。通过整合以下工具,可以构建一套高效的代码风格检查+自动格式化+提交钩子工作流:✅ESLint:语法规则检查✅Prettier:统一格式化风格✅Husky:Git提交钩子✅lint-staged:仅检查本次提交相关的文件一、项目初始化(以Vue3+Vite项目为例)pnpmcreatevitemy-app--templatevue-tsc
- vue3实践3
清风徐来QCQ
vue.jsjavascript前端
1.vue-cli脚手架使用vue-cli脚手架构建vue项目首先全局安装脚手架npminstall-g@vue/cli创建一个vue项目vuecreate项目名称运行脚手架构建的项目npmrunserve如果使用npmcreatevitebasic--templatevue-ts构建项目模板可以选择vue:创建一个使用Vue3的项目。vue-ts:创建一个使用Vue3和TypeScript的项目
- Vue.js --- 一文看懂路由
蒜蓉大猩猩
Vue3.jsjavascriptvue.js前端chromehtml前端框架
1.前言路由(VueRouter)用于管理不同页面或视图的跳转和展示。它通过控制应用的URL路径与组件之间的映射关系,实现在单页应用(SPA)中的页面切换,提供了良好的用户体验,而无需重新加载整个页面。2.路由基础2.1路由的安装npminstallvue-router@4指定安装路由版本4,适配于vue32.2路由管理方式路由的history和hash模式是两种不同的URL路由管理方式,它们都通
- Vue-路由(vue2,vue3)的使用-嵌套路由-路由传参-命名
IT小杨666
Vuevue.js前端javascript
1.路由:一组key和value的组合。2.基本使用:2.1:npmivue-router(插件)3.Vue3.0的使用:3.1在main.js中配置:import{createApp}from'vue'importAppfrom'./App.vue'//引入路由器importrouterfrom"@/router";createApp(App).use(router).mount('#app')
- npm install速度慢,install超时报错----npm换源;npm i npm install区别
包淼淼
npm前端node.js
问题:我的项目npminstall之后特别慢,然后还超时报错。我确定我的npm版本和node版本是匹配的,没有问题的。然后我就想应该npm的官方源的问题,官方源在外国加载慢。然后我就开始换源。对于NPM,下载完后不换源的话,下载依赖包就相当的慢,最后超时下载失败也经常发生。这时候我们就要改一下NPM的registry配置,换成国内的镜像源。先看看源指向哪里:npm换源查看源先看看源指向哪里npmc
- npm ci跟npm install有什么区别
阿里嘎多学长
npm前端node.js
npmci和npminstall都是npm(NodePackageManager)提供的命令,用于安装项目依赖,但它们在使用场景和行为上有一些关键的区别:使用场景:npminstall:通常用于开发环境,当你需要安装一个新的包或者修改package.json和package-lock.json文件时使用。npmci:主要用于生产环境或持续集成(CI)系统中,它要求存在一个package-lock.
- npm ci 和npm install 的区别
lishandu
node.js
目前在部署项目的时候,遇到执行npmci的时候出现错误,但是改为npminstall时,就能正常部署。所以就去网上搜索了它们之间的区别。以下是官网npmci的信息:https://docs.npmjs.com/cli/v7/commands/npm-ci此命令类似于npminstall,不同之处在于它用于自动化环境,例如测试平台、持续集成和部署——或者任何您想要确保完全安装依赖项的情况。npmci
- npm ci对比npm install
_揽
前端学习笔记开发语言前端javascript
npmci命令详解:高效、可靠的依赖安装方案一、核心区别:npmcivsnpminstall特性npminstallnpmci安装逻辑智能更新依赖(根据package.json和lock文件)严格按照lock文件安装(保证环境一致性)是否允许修改lock可能更新package-lock.json禁止修改lock文件,若冲突则报错是否删除旧依赖保留未使用的依赖(增量安装)先删除node_module
- 【图床配置记录】——pigo+gitee+typroa
记录一下安装的过程基本上blog1可以解决blog1但是如果pigo上面没有gitee或者下载gitee没啥反应手动安装,在c:/用户/用户名/AppData/Roaming/picgo这个目录下,以管理员身份打开powershell(或cmd;文件——以管理员打开ps——输入npminstallpicgo-plugin-gitee-uploader命令——重启picgo即可)
- umi搭建react项目
小刘,刘不刘
react.js前端前端框架umi
UMI是一个基于React的可扩展企业级前端应用框架,提供路由、状态管理、构建和部署等功能,可以帮助开发者快速构建复杂的单页面应用(SPA)和多页面应用(MPA)。它与React的关系是,UMI构建在React生态系统之上,利用React提供的组件化开发方式和生态系统的丰富资源来进行开发。所以学习react的同时可以借助umi这个框架进行深度学习react第一步创建umi项目在终端输入npmins
- vue2.0+electron生成.exe文件
Fairyasd
electronjavascript
vue2.0+electron生成.exe文件1.安装插件cnpminstallelectron--save-devcnpminstallelectron-packager--save-dev2.在package.json中增加指令如图:"name":"ticketing_client","version":"1.0.0","description":"AVue.jsproject","priva
- 好用的图标库和字体库
今日亦是美好的一天
css前端
图标库1.antd自带的icon链接:图标Icon-AntDesign要安装一下:npminstall@ant-design/icons@你的antd版本--save2.iconfont-阿里巴巴矢量图标库链接:iconfont-阿里巴巴矢量图标库3.IconPark-字节图标库链接:ByteDanceIconPark字体库1.字体天下链接:搜索结果-字体天下之前用来找关于大屏的数字格式,比如上面
- LLMs之MCP:excel-mcp-server的简介、安装和使用方法、案例应用之详细攻略
一个处女座的程序猿
NLP/LLMsLLMMCP
LLMs之MCP:excel-mcp-server的简介、安装和使用方法、案例应用之详细攻略目录excel-mcp-server的简介1、特点2、支持的文件格式:excel-mcp-server的安装和使用方法1、安装通过NPM安装Windows平台其他平台通过Smithery安装2、使用方法(工具)excel-mcp-server的案例应用excel-mcp-server的简介excel-mcp
- 使用 Node.js 和 Express 构建一个简单的 RESTful API
boydoy1987
#前端破晓node.jsexpressrestful
使用Node.js和Express构建一个简单的RESTfulAPI在现代Web开发中,RESTfulAPI已成为后端开发的标准。通过RESTfulAPI,前端和后端可以高效地进行数据通信。本文将介绍如何使用Node.js和Express框架从头开始构建一个简单的RESTfulAPI。一、项目初始化1.安装Node.js首先,确保你的系统已经安装了Node.js和npm。你可以通过Node.js官
- Node.js 常用工具
沐知全栈开发
开发语言
Node.js常用工具引言Node.js是一个基于ChromeV8引擎的JavaScript运行环境,它允许开发者使用JavaScript编写服务器端代码。在Node.js的开发过程中,使用一些常用的工具可以大大提高开发效率和项目质量。本文将详细介绍Node.js开发中常用的工具,包括版本管理、代码编辑、包管理、调试、测试、性能监控等。版本管理工具:npm和Yarnnpmnpm(NodePacka
- 火狐浏览器驱动下载
品尚公益团队
pythonpython
【Chromedrive下载】历史版本下载地址:DirectoryListing:/pub/firefox/releases/版本可参照SeleniumChrome版本与chromedriver兼容版本对照表下载地址各版本下载地址geckodriver下载地址旧版本淘宝npm镜像geckodriverMirroriedriver下载地址http://selenium-release.storage
- npm ERR! code CERT_HAS_EXPIRED问题解决
不吃葱的胖虎
前端
这个错误表示npm在尝试通过HTTPS连接到一个资源时,遇到了SSL证书已经过期的问题。这通常意味着你的计算机的日期和时间设置不正确,或者是npm缓存中有一个过期的证书。解决方法:检查计算机的日期和时间设置是否准确,如果不正确,请将其更新为当前的日期和时间。清除npm缓存。可以使用以下命令:npmcacheclean--force如果问题依旧存在,可能是因为npm配置了错误的或者过期的SSL证书。
- 秒删node_modules
操作步骤1安装npminstallrimraf-g2执行命令rimrafnode_modules
- vue2中前端实现图片裁剪上传到服务器
涔溪
jsvue前端服务器运维
在Vue2中实现图片裁剪并上传到服务器,你可以结合使用Cropper.js来进行图片裁剪,并通过Axios或者其他HTTP客户端库将裁剪后的图片上传至服务器。以下是一个基本的实现步骤和示例代码:步骤安装依赖:你需要安装cropperjs和axios(或者其他你喜欢的HTTP客户端)。bash深色版本npminstallcropperjsaxios创建组件:创建一个Vue组件来处理图片选择、预览、裁
- yarn如何用node替换
leo__520
node
Yarn是一个流行的JavaScript包管理工具,它为npm提供了更快、更可靠的体验。尽管Yarn有其优势,但在许多情况下,我们可能想使用Node.js的本地包管理机制来替代Yarn。一、基本概念在开始之前,我们要明确一些基本个念:Node.js:一个高效的JavaScript运行环境,为构建服务器端应用程序提供支持。Yarn:一个Facebook开发的JavaScript包管理工具,用于处理项
- npm 安装axios报错!
Jet_closer
vuevue.jsjavascript
在安装axios的时候,运行然后报一大堆错,比如errorin./node_modules/axios/index.jsModulebuildfailed:Error:ENOENT:nosuchfileordirectory,open'src/'或者这种UncaughtError:Modulebuildfailed:Error:EPERM:operationnotpermitted,open'\n
- C/C++Win32编程基础详解视频下载
择善Zach
编程C++Win32
课题视频:C/C++Win32编程基础详解
视频知识:win32窗口的创建
windows事件机制
主讲:择善Uncle老师
学习交流群:386620625
验证码:625
--
- Guava Cache使用笔记
bylijinnan
javaguavacache
1.Guava Cache的get/getIfPresent方法当参数为null时会抛空指针异常
我刚开始使用时还以为Guava Cache跟HashMap一样,get(null)返回null。
实际上Guava整体设计思想就是拒绝null的,很多地方都会执行com.google.common.base.Preconditions.checkNotNull的检查。
2.Guava
- 解决ora-01652无法通过128(在temp表空间中)
0624chenhong
oracle
解决ora-01652无法通过128(在temp表空间中)扩展temp段的过程
一个sql语句后,大约花了10分钟,好不容易有一个结果,但是报了一个ora-01652错误,查阅了oracle的错误代码说明:意思是指temp表空间无法自动扩展temp段。这种问题一般有两种原因:一是临时表空间空间太小,二是不能自动扩展。
分析过程:
既然是temp表空间有问题,那当
- Struct在jsp标签
不懂事的小屁孩
struct
非UI标签介绍:
控制类标签:
1:程序流程控制标签 if elseif else
<s:if test="isUsed">
<span class="label label-success">True</span>
</
- 按对象属性排序
换个号韩国红果果
JavaScript对象排序
利用JavaScript进行对象排序,根据用户的年龄排序展示
<script>
var bob={
name;bob,
age:30
}
var peter={
name;peter,
age:30
}
var amy={
name;amy,
age:24
}
var mike={
name;mike,
age:29
}
var john={
- 大数据分析让个性化的客户体验不再遥远
蓝儿唯美
数据分析
顾客通过多种渠道制造大量数据,企业则热衷于利用这些信息来实现更为个性化的体验。
分析公司Gartner表示,高级分析会成为客户服务的关键,但是大数据分析的采用目前仅局限于不到一成的企业。 挑战在于企业还在努力适应结构化数据,疲于根据自身的客户关系管理(CRM)系统部署有效的分析框架,以及集成不同的内外部信息源。
然而,面对顾客通过数字技术参与而产生的快速变化的信息,企业需要及时作出反应。要想实
- java笔记4
a-john
java
操作符
1,使用java操作符
操作符接受一个或多个参数,并生成一个新值。参数的形式与普通的方法调用不用,但是效果是相同的。加号和一元的正号(+)、减号和一元的负号(-)、乘号(*)、除号(/)以及赋值号(=)的用法与其他编程语言类似。
操作符作用于操作数,生成一个新值。另外,有些操作符可能会改变操作数自身的
- 从裸机编程到嵌入式Linux编程思想的转变------分而治之:驱动和应用程序
aijuans
嵌入式学习
笔者学习嵌入式Linux也有一段时间了,很奇怪的是很多书讲驱动编程方面的知识,也有很多书将ARM9方面的知识,但是从以前51形式的(对寄存器直接操作,初始化芯片的功能模块)编程方法,和思维模式,变换为基于Linux操作系统编程,讲这个思想转变的书几乎没有,让初学者走了很多弯路,撞了很多难墙。
笔者因此写上自己的学习心得,希望能给和我一样转变
- 在springmvc中解决FastJson循环引用的问题
asialee
循环引用fastjson
我们先来看一个例子:
package com.elong.bms;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Map;
import co
- ArrayAdapter和SimpleAdapter技术总结
百合不是茶
androidSimpleAdapterArrayAdapter高级组件基础
ArrayAdapter比较简单,但它只能用于显示文字。而SimpleAdapter则有很强的扩展性,可以自定义出各种效果
ArrayAdapter;的数据可以是数组或者是队列
// 获得下拉框对象
AutoCompleteTextView textview = (AutoCompleteTextView) this
- 九封信
bijian1013
人生励志
有时候,莫名的心情不好,不想和任何人说话,只想一个人静静的发呆。有时候,想一个人躲起来脆弱,不愿别人看到自己的伤口。有时候,走过熟悉的街角,看到熟悉的背影,突然想起一个人的脸。有时候,发现自己一夜之间就长大了。 2014,写给人
- Linux下安装MySQL Web 管理工具phpMyAdmin
sunjing
PHPInstallphpMyAdmin
PHP http://php.net/
phpMyAdmin http://www.phpmyadmin.net
Error compiling PHP on CentOS x64
一、安装Apache
请参阅http://billben.iteye.com/admin/blogs/1985244
二、安装依赖包
sudo yum install gd
- 分布式系统理论
bit1129
分布式
FLP
One famous theory in distributed computing, known as FLP after the authors Fischer, Lynch, and Patterson, proved that in a distributed system with asynchronous communication and process crashes,
- ssh2整合(spring+struts2+hibernate)-附源码
白糖_
eclipsespringHibernatemysql项目管理
最近抽空又整理了一套ssh2框架,主要使用的技术如下:
spring做容器,管理了三层(dao,service,actioin)的对象
struts2实现与页面交互(MVC),自己做了一个异常拦截器,能拦截Action层抛出的异常
hibernate与数据库交互
BoneCp数据库连接池,据说比其它数据库连接池快20倍,仅仅是据说
MySql数据库
项目用eclipse
- treetable bug记录
braveCS
table
// 插入子节点删除再插入时不能正常显示。修改:
//不知改后有没有错,先做个备忘
Tree.prototype.removeNode = function(node) {
// Recursively remove all descendants of +node+
this.unloadBranch(node);
// Remove
- 编程之美-电话号码对应英语单词
bylijinnan
java算法编程之美
import java.util.Arrays;
public class NumberToWord {
/**
* 编程之美 电话号码对应英语单词
* 题目:
* 手机上的拨号盘,每个数字都对应一些字母,比如2对应ABC,3对应DEF.........,8对应TUV,9对应WXYZ,
* 要求对一段数字,输出其代表的所有可能的字母组合
- jquery ajax读书笔记
chengxuyuancsdn
jQuery ajax
1、jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()
- JWFD工作流拓扑结构解析伪码描述算法
comsci
数据结构算法工作活动J#
对工作流拓扑结构解析感兴趣的朋友可以下载附件,或者下载JWFD的全部代码进行分析
/* 流程图拓扑结构解析伪码描述算法
public java.util.ArrayList DFS(String graphid, String stepid, int j)
- oracle I/O 从属进程
daizj
oracle
I/O 从属进程
I/O从属进程用于为不支持异步I/O的系统或设备模拟异步I/O.例如,磁带设备(相当慢)就不支持异步I/O.通过使用I/O 从属进程,可以让磁带机模仿通常只为磁盘驱动器提供的功能。就好像支持真正的异步I/O 一样,写设备的进程(调用者)会收集大量数据,并交由写入器写出。数据成功地写出时,写入器(此时写入器是I/O 从属进程,而不是操作系统)会通知原来的调用者,调用者则会
- 高级排序:希尔排序
dieslrae
希尔排序
public void shellSort(int[] array){
int limit = 1;
int temp;
int index;
while(limit <= array.length/3){
limit = limit * 3 + 1;
- 初二下学期难记忆单词
dcj3sjt126com
englishword
kitchen 厨房
cupboard 厨柜
salt 盐
sugar 糖
oil 油
fork 叉;餐叉
spoon 匙;调羹
chopsticks 筷子
cabbage 卷心菜;洋白菜
soup 汤
Italian 意大利的
Indian 印度的
workplace 工作场所
even 甚至;更
Italy 意大利
laugh 笑
m
- Go语言使用MySQL数据库进行增删改查
dcj3sjt126com
mysql
目前Internet上流行的网站构架方式是LAMP,其中的M即MySQL, 作为数据库,MySQL以免费、开源、使用方便为优势成为了很多Web开发的后端数据库存储引擎。MySQL驱动Go中支持MySQL的驱动目前比较多,有如下几种,有些是支持database/sql标准,而有些是采用了自己的实现接口,常用的有如下几种:
http://code.google.c...o-mysql-dri
- git命令
shuizhaosi888
git
---------------设置全局用户名:
git config --global user.name "HanShuliang" //设置用户名
git config --global user.email "
[email protected]" //设置邮箱
---------------查看环境配置
git config --li
- qemu-kvm 网络 nat模式 (四)
haoningabc
kvmqemu
qemu-ifup-NAT
#!/bin/bash
BRIDGE=virbr0
NETWORK=192.168.122.0
GATEWAY=192.168.122.1
NETMASK=255.255.255.0
DHCPRANGE=192.168.122.2,192.168.122.254
TFTPROOT=
BOOTP=
function check_bridge()
- 不要让未来的你,讨厌现在的自己
jingjing0907
生活 奋斗 工作 梦想
故事one
23岁,他大学毕业,放弃了父母安排的稳定工作,独闯京城,在家小公司混个小职位,工作还算顺手,月薪三千,混了混,混走了一年的光阴。 24岁,有了女朋友,从二环12人的集体宿舍搬到香山民居,一间平房,二人世界,爱爱爱。偶然约三朋四友,打扑克搓麻将,日子快乐似神仙; 25岁,出了几次差,调了两次岗,薪水涨了不过百,生猛狂飙的物价让现实血淋淋,无力为心爱银儿购件大牌
- 枚举类型详解
一路欢笑一路走
enum枚举详解enumsetenumMap
枚举类型详解
一.Enum详解
1.1枚举类型的介绍
JDK1.5加入了一个全新的类型的”类”—枚举类型,为此JDK1.5引入了一个新的关键字enum,我们可以这样定义一个枚举类型。
Demo:一个最简单的枚举类
public enum ColorType {
RED
- 第11章 动画效果(上)
onestopweb
动画
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
- Eclipse中jsp、js文件编辑时,卡死现象解决汇总
ljf_home
eclipsejsp卡死js卡死
使用Eclipse编辑jsp、js文件时,经常出现卡死现象,在网上百度了N次,经过N次优化调整后,卡死现象逐步好转,具体那个方法起到作用,不太好讲。将所有用过的方法罗列如下:
1、取消验证
windows–>perferences–>validation
把 除了manual 下面的全部点掉,build下只留 classpath dependency Valida
- MySQL编程中的6个重要的实用技巧
tomcat_oracle
mysql
每一行命令都是用分号(;)作为结束
对于MySQL,第一件你必须牢记的是它的每一行命令都是用分号(;)作为结束的,但当一行MySQL被插入在PHP代码中时,最好把后面的分号省略掉,例如:
mysql_query("INSERT INTO tablename(first_name,last_name)VALUES('$first_name',$last_name')");
- zoj 3820 Building Fire Stations(二分+bfs)
阿尔萨斯
Build
题目链接:zoj 3820 Building Fire Stations
题目大意:给定一棵树,选取两个建立加油站,问说所有点距离加油站距离的最大值的最小值是多少,并且任意输出一种建立加油站的方式。
解题思路:二分距离判断,判断函数的复杂度是o(n),这样的复杂度应该是o(nlogn),即使常数系数偏大,但是居然跑了4.5s,也是醉了。 判断函数里面做了3次bfs,但是每次bfs节点最多