- 微信小程序封装loading 修改
-嘻嘻哈哈~
微信小程序小程序
1.custom-loading.vue{{text}}{{dots}}exportdefault{props:{visible:Boolean,text:{type:String,default:'加载中'}},data(){return{dots:'',timer:null}},mounted(){this.startAnimation()},beforeDestroy(){clearInte
- element ui plus 找不到bodyWrapper实现两个表格同步滚动的方法。
不二家大哥哥
前端vue.jsjavascript
mounted(){this.dom1=this.$refs.table1;this.dom2=this.$refs.table2;this.dom1.$el.addEventListener("mouseover",(e)=>{this.flag=false;//此处的flag判断是否主动滚动了当前tablethis.dom2.$el.addEventListener("mouseover",(
- elementUI轮播图组件el-carousel适配移动端大小(图片加载好后根据大小适配)
printf_824
elementuijavascriptvue.js
获取img实例,动态设置el-carousel高度import{ref,onMounted,onBeforeUnmount,nextTick}from'vue';constbanners=ref(['/images/banner/banner1.png','/images/banner/banner1.png','/images/banner/banner1.png','/images/banne
- Linux 挂载从入门到精通:mount 命令详解与实战指南
SAT小象
Linuxlinux运维服务器
一、挂载基础概念1.1什么是挂载?在Linux中,挂载(Mount)是将外部存储设备(如硬盘、U盘、光盘等)或文件系统(如ISO镜像、网络共享)连接到系统目录树的过程。通过挂载,用户可以像访问本地文件一样访问外部设备中的数据。关键点:设备与目录的映射:外部设备必须挂载到文件系统中的一个目录(称为挂载点)后才能被访问。例如,将U盘挂载到/mnt/usb目录后,访问/mnt/usb即可查看U盘内容。挂
- vue中的ref
咔咔咔索菲斯
vue.js前端javascript
在Vue中,ref是用于给元素或子组件添加引用标识的属性,通过它可以在组件实例中直接访问对应的DOM元素或子组件实例。基本用法-给DOM元素添加引用在模板中给元素添加ref="元素名",然后通过this.$refs.元素名访问对应的DOM节点。这是一个输入框exportdefault{mounted(){console.log(this.$refs.inputRef);//输出对应的DOM元素}}
- 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')
- 设计模式之手写策略模式实现动态支付(Java实现)
尤物程序猿
设计模式策略模式java
首先,定义一个接口类importjava.util.Map;publicinterfacePayInterface{/***支付方法*@paramamount支付金额*@parampaymentInfo支付信息(如卡号、密码等)*@return支付结果*/booleanpay(doubleamount,MappaymentInfo);}再写俩个实现类importjava.util.Map;publ
- LVS-DR负载均衡群集深度实践:高性能架构设计与排障指南
东窗西篱梦
lvs负载均衡服务器
目录一、核心原理与理论二、背景与架构设计三、全流程部署步骤1.NFS共享存储配置(192.168.7.100)2.RealServer节点配置(四台服务器)3.Director服务器配置四、常见问题解决方案五、生产环境总结拓扑示意图:一、核心原理与理论LVS-DR(DirectRouting)模式通过MAC地址改写实现高效转发:数据流向LVS-DR(DirectRouting)工作流程:请求处理客
- 容器的数据管理与挂载——AI教你学Docker
LuckyLay
AI教你学Dockerdocker容器运维
1.4容器(Container)详解(补充)——容器的数据管理与挂载详解(含宿主机文件交互)数据管理是Docker容器化的重要组成部分。容器本身是临时的、易于销毁的,数据的持久化与与宿主机的数据交互,主要通过**挂载卷(Volumes)和绑定挂载(BindMounts)**来实现。一、容器内部数据的特点临时性:容器内的数据(不做挂载)默认存储于写时层,容器删除后数据随之丢失。持久化需求:需要将数据
- linux 异常记录,linux 系统维护常见错误记录
张一库
linux异常记录
一:卸载的时候出现的错误:umount/dev/nb1deviceisbusy解决:找到是什么进程使得他busy,用lsof/dev/nb1.kill掉那个进程,然后重新umount即可。二:GD2编译的时候出现的错误:Theusualwaytodefine`LIBTOOL’istoadd`AC_PROG_LIBTOOL’Libtoollibraryusedbut`LIBTOOL’isundefi
- 【请关注】真实案例pg及kong安装部署
DoWeixin6
kong
#前提需要安装好nfsKONG_NAMESPACE="kong-api"PG_NAMESPACE="pg-ha"HARBOR_IP="harbor.rancher.com"一、安装pg高可用#######################################################################################kubectlcreatenames
- Dockerfile镜像制作
一:Docker镜像管理1:Docker镜像结构Docker镜像是一种轻量级、可执行的独立软件包,它包含运行应用程序所需的一切:代码、运行时环境、库、环境变量和配置文件。镜像是创建Docker容器的基础,采用分层存储结构。关键特点:分层结构:每个镜像由多个只读层组成,每层对应Dockerfile中的一条指令。联合文件系统:使用UnionFS技术将各层叠加,形成统一的文件系统视图。共享层:不同镜像可
- Vue3 组合式 API:生命周期钩子(三)
**之火
vue3vue.js前端前端框架Vue3
1、onMounted()onMounted()会在组件挂载到DOM后立即调用,此时DOM已经渲染完毕,可以进行相关的DOM操作或发起网络请求。exportdefault{setup(){//可以在这里定义响应式状态、计算属性等onMounted(()=>{//组件挂载到DOM后执行的代码console.log('组件已挂载到DOM');//在这里可以进行DOM操作或发起网络请求等});//返回需
- Vue3组合式API中使用生命周期钩子教程
流着口水看上帝
vue.js
1.导入生命周期函数-在Vue3中,组合式API提供了与选项式API相对应的生命周期钩子函数。这些函数需要从vue模块中导入。例如,要使用onMounted钩子,需要在组件文件中添加如下导入语句:import{onMounted}from'vue';-可以根据具体需求导入不同的生命周期钩子函数,如onBeforeMount、onUpdated、onBeforeUpdate、onUnmounted等
- K8s采用Helm部署高可用Redis集群实战指南
Java面试题合集
kubernetesredis容器
本文将引导您使用Helm在Kubernetes(K8s)集群中,快速部署一个基于Redis3主3从架构的高可用分布式缓存集群。此部署方案依赖于现有的Kubernetes集群、Helm客户端,并预设已配置基于NFS的StorageClass以实现持久化存储。引言:为何选择高可用Redis集群?在现代Web应用中,缓存是提升性能、降低数据库负载的关键组件。Redis以其高性能和丰富的数据结构成为缓存首
- K8S部署calico网络插件有一个calico-node-xxx始终0/1
BOUTTIME
网络kubernetes容器
1、情况是这样的,我在master部署calico网络插件的时候,运行完kubectlapply-fcalico.yml后,查看pod运行情况:(base)[root@masteropt]#kubectlgetpod-ANAMESPACENAMEREADYSTATUSRESTARTSAGEdefaultnfs-client-provisioner-566f7f554d-6hww61/1Runnin
- vue2项目延迟装载defer优化白屏
riyue666
前端开发语言vue.js
使用的混入,这个使用的是关键帧的形式来分片加载,可以优化白屏时间exportdefaultfunction(maxFraneCount){return{data(){return{frameCount:0}},mounted(){constrefreshFrameCount=()=>{requestAnimationFrame(()=>{this.frameCount++if(this.frame
- 《仿盒马》app开发技术分享-- 确认订单页(数据展示)(29)
typescript
技术栈Appgalleryconnect开发准备上一节我们实现了地址的添加,那么有了地址之后我们接下来的重点就可以放到订单生成上了,我们在购物车页面,点击结算会跳转到一个订单确认页面,在这个页面我们需要有地址选择、加购列表展示、价格计算、优惠计算、商品数量展示等信息。功能分析要想实现确认订单页面的功能,我们只需要从购物车页面把加购的列表传递过来,然后根据列表中的buyamount以及price去计
- vue3单张图片放大缩小拖拽功能
ikun在线敲打
vue.js前端javascript
此篇为单张,多张请移步多张实现的文章话不多说直接上代码import{ref,onMounted,onBeforeUnmount}from'vue'constboxRef=ref(null)constimgRef=ref(null)letx=0lety=0letisDragging=false//确保元素存在后再操作constgetImgElement=()=>{if(!imgRef.value){
- 将 C# 委托与事件一起使用
Cool2Feel
C#委托事件C#
.NET委托是可以在运行时引用内存中的静态方法和实例方法的对象,并且可以在您的程序中调用这些方法。在本教程中,我将向您展示如何在C#中创建和使用委托。为了解释委托及其在现实世界程序中的使用,我正在创建一个BankAccount类,我将在其中使用C#委托关键字声明一个委托。publicclassBankAccount{intamount=0;//DeclareDelegateTypeObjectpu
- arco design Vue3使用高德地图,高德地图正常加载,但路线不出来
LLL_LH
arcodesign
使用了高德地图的,@amap/amap-jsapi-loader插件,然后按照高德地图的实例使用组件,其他项目里面都可以正常显示,但在arcodesign项目里面,左下角的高德地图名称,可以显示,但图片就是不能显示,找了半天问题,结果是version的问题。把version:2.0注释掉就行import{onMounted,onUnmounted}from'vue';importAMapLoade
- 1801. 积压订单中的订单总数
Joyner2018
python算法leetcodepython开发语言linux
LeetCode处理积压订单中的订单总数:堆结构模拟实战解析题目描述我们在进行订单撮合系统的构建时,可能会遇到如下问题:给定一个二维整数数组orders,其中每个orders[i]=[pricei,amounti,orderTypei]表示有amounti笔订单,类型为orderTypei,价格为pricei:orderTypei==0表示这是一个采购订单(Buy)orderTypei==1表示这
- 页面刷新url返回默认页面问题解决
luanluan8888
前端javajavascript
app.vueonMounted(async()=>{//监听浏览器的beforeunload事件window.addEventListener('beforeunload',(event)=>{//如果条件满足(例如当前不是默认页面时),重定向到默认页if(route.path!=='/'){router.push('/');}});//组件卸载前移除事件监听,避免内存泄露onUnmounted
- vue3 defineExpose的使用
我在北京coding
vue3vue.js前端javascript
子组件//子组价子组件num值:{{num}}import{ref}from"vue";constnum=ref(100);constfn=()=>{console.log('我是方法');}defineExpose({num,fn})父组件//父组价import{onMounted,ref}from"vue";constchild=ref(null);onMounted(()=>{console
- React中的useEffect详解
前端页面仔
react.jsjavascript前端
React中的useEffect详解什么是useEffect?useEffect是ReactHooks中最重要的一个Hook,它允许你在函数组件中执行副作用操作。简单来说,它相当于类组件中的componentDidMount、componentDidUpdate和componentWillUnmount这三个生命周期方法的组合。基本语法import{useEffect}from'react';fu
- Linux运维新人自用笔记(配置本地光盘yum镜像源、离线安装rpm包、yum缓存rpm包、安装指定版本软件、查询依赖关系、docker简单部署)
内容全为个人理解和自查资料梳理,欢迎各位大神指点!每天学习较为零散。day18一、配置本地光盘yum仓库镜像源#创建挂载目录[root@626nmna1]#mkdir/mnt/my_centos#查看当前磁盘情况[root@626nmna1]#df-h#将本地光盘挂载在目录下[root@626nmna1]#mount/dev/sr0/mnt/my_centos/#yum仓库文件[root@626n
- Vue 实例选项
AI老李
vue3vue.jsjavascript前端
关键要点Vue3生命周期钩子是组件在创建、更新、销毁等阶段触发的函数,用于执行特定逻辑。主要钩子包括beforeCreate、created、beforeMount、mounted、beforeUpdate、updated、beforeUnmount、unmounted。Vue3支持OptionsAPI和组合式API,组合式API使用onMounted等函数替代传统钩子。研究表明,生命周期钩子提高
- Vue 组件实例
AI老李
vue3vue.js前端javascript
直接回答关键要点:Vue组件实例是Vue.js中组件定义的具体化,研究表明它在应用中使用时会创建独立的实例。每个实例有自己的数据和方法,隔离性高,除非通过props或事件共享。内置属性如$data、$props和方法如$watch、$emit方便操作组件。生命周期钩子(如mounted、updated)允许在不同阶段执行逻辑。它似乎支持模块化和可重用性,适合构建复杂应用。什么是Vue组件实例?Vu
- nginx: [error] invalid PID number ““ in “/var/run/nginx.pid“
秦时明月之君临天下
LinuxNginxnginxlinux
在重载nginx时,报了这个错误:nginx:[error]invalidPIDnumber“”in“/var/run/nginx.pid”,然后发现这个pid文件居然是空的,而不是正常保留的nginx主进程的pid。[root@02cert]#/usr/sbin/nginx-tnginx:theconfigurationfile/etc/nginx/nginx.confsyntaxisokngi
- 配置DHCP
fansheng128
服务器linux运维
目录一.挂载光盘二.配置yum源三.安装DHCP四.DHCP配置管理五.使用DHCP在一台主机中,在配置DHCP:一.先挂载光盘:mount/dev/cdrom/mnt二.配置yum源1.cd/etc/yum.repos.d/2.vimlocal.repo[local]name=localbaseurl=file:///mntenabled=1gpgcheck=03.yumcleanall清理缓存
- 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节点最多