- 锁查询及处理
瀚高PG实验室
数据库postgresql瀚高数据库
文章目录环境症状问题原因解决方案环境系统平台:N/A版本:6.0症状数据库锁表后,对锁住的表无法进行改动,严重时会影响业务正常运转。问题原因多个会话在同一时间段对相同的数据做了改动,且第一个会话没有立即释放。解决方案1、创建测试表highgo=#select*fromhgjob_test033;id|name|timestart|count----+-------+----------------
- XXL-JOB详解
zhangyankun_csdn
Springjava
一、简介1.5下载文档地址中文文档https://www.xuxueli.com/xxl-job/EnglishDocumentationhttps://www.xuxueli.com/xxl-job/en/源码仓库地址https://github.com/xuxueli/xxl-jobhttp://gitee.com/xuxueli0323/xxl-job中央仓库地址com.xuxuelixxl
- SpringBoot教程(二十二) | SpringBoot实现分布式定时任务之elastic-job
Slow菜鸟
#SpringBoot学习篇springboot分布式后端
SpringBoot教程(二十二)|SpringBoot实现分布式定时任务之elastic-job简介适用场景前置条件:需要ZooKeeper配合1、引入相关依赖2、application.yml中配置注册中心和作业调度巨坑(配置修改无效)3、job实例4、ElasticJob-UI监控平台(相当于管理端页面)参考文章:【1】SpringBoot整合分布式任务调度Elastic-Job【2】Ela
- 分布式作业: Elastic-Job
赤橙红的黄
Spring分布式
1.背景介绍Spring框架自带的定时任务scheduled如果部署多台机器时,同一个任务会执行多次,比如给用户计算收益定时任务,每天定时给用户计算收益,如果部署了多台,同一个用户将重复计算多次收益(业务错误),但如果只部署一台机器,无法保证高可用性,如果定时任务机器宕机,无法故障转移;Elastic-Job基于Zookeeper、Quartz开发的Java分布式定时任务解决方案。2.优点高可用性
- 分布式定时任务:Elastic-Job-Lite
Elastic-Job-Lite是一款由Apache开源的轻量级分布式任务调度框架,属于ShardingSphere生态体系的一部分。它专注于分布式任务调度,支持弹性伸缩、分片处理、高可用等特性,且不依赖中心化架构。一、基础(一)核心特性分布式协调通过ZooKeeper实现作业的分布式调度和协调,确保任务在集群环境中不重复、不遗漏地执行。分片机制支持将任务拆分为多个分片(Sharding)并行执行
- Linux——K8S的pod的调度
Xinan_____
K8SLinuxkuberneteslinux容器
DeploymentStatefulSetDaemonsetreplicaSetReplicacontroller//从K8S的近期版本中将逐渐移除rcJobcronjobK8s网络:平台中的POD如何通信:CNI容器网络插件Coredns的组件负责提供平台中的名称解析平台中的应用如何被客户端访问Service//将部署的应用暴露给一个统一的入口ClusterIP//平台内部IP地址NodePor
- Java代码实现Excel表格导入
IT莫染
FunctionModuleSpringBootDemojava教程面试题等exceljavapoi
Java代码实现Excel表格导入/***Excel解析成员工数据集合**@paramfile*@paramallNations*@paramallPoliticsstatus*@paramallDepartments*@paramallPositions*@paramallJobLevels*@return*/publicstaticListexcel2Employee(MultipartFil
- 解决@Scope(“prototype“)不生效
梦想blog
SpringBootspringbootcomponentscope
使用spring的时候,我们一般都是使用@Component实现bean的注入,这个时候我们的bean如果不指定@Scope,默认是单例模式,另外还有很多模式可用,用的最多的就是多例模式了,顾名思义就是每次使用都会创建一个新的对象,比较适用于写一些job,比如在多线程环境下可以使用全局变量之类的创建一个测试任务,这里在网上看到大部分都是直接@Scope(“prototype”),这里测试是不生效的
- GitHub 使用小技巧
千空
搜索技巧信息检索
GitHub现在成了程序员最流行的社交网站,可能也是最大的代码托管仓库。然而除了代码托管外,GitHub还提供其它服务:代码仓库(https://github.com),代码片段(https://gist.github.com),短网址(https://git.io),主页(http://username.github.io),工作(https://jobs.github.com)。这里记录一下G
- 多个 Job 并发运行时共享配置文件导致上下文污染,固化 Jenkins Job 上下文
要站在顶端
Jenkinsjenkinsservlet运维
基于context.py固化JenkinsJob上下文的完整方案,适用于你当前的工作流(Python+JenkinsPipeline),解决:多个Job并发运行时共享配置文件导致上下文污染;读取环境变量或JSON文件时被其他Job修改的问题;后续阶段(如发送通知)读取错误上下文的问题;✅目标在每个JenkinsJob开始时,将关键变量一次性固化到内存中,并在整个Job生命周期内始终使用这些值。整体
- DataX(2)—— 核心流程
申尧强
datax
DataX的核心执行流程:初始化阶段创建JobContainer容器(主控进程)加载配置,初始化reader/writer插件准备阶段调用reader/writer的prepare()方法执行数据源和目标端的准备工作任务切分阶段根据channel数切分reader任务根据reader切分结果切分writer任务合并生成最终task配置调度执行阶段分配task到各个taskGroup启动TaskGr
- xdata的使用
一切顺势而行
bigdata
{"job":{"setting":{"speed":{"channel":3},"errorLimit":{"record":0,"percentage":0.02}},"content":[{"reader":{"name":"mysqlreader","parameter":{"username":"root","password":"123456","column":["id","name
- Beam2.61.0版本消费kafka重复问题排查
隔壁寝室老吴
kafkalinq分布式
1.问题出现过程在测试环境测试flink的job的任务消费kafka的情况,通过往job任务发送一条消息,然后flinkwebui上消费出现了两条。然后通过重启JobManager和TaskManager后,任务从checkpoint恢复后就会出现重复消费。当任务不从checkpoint恢复的时候,任务不会出现重复消费的情况。由此可见是beam从checkpoint恢复的时候出现了重复消费的问题。
- import setuptools.version遇到pkg_resource异常
Pianist Of Keyboard
python
背景在自己写的包中使用到joblib和setuptools,在导入的时候经常容易卡主,一次严重影响到了生产,故尝试解决。File"/root/xxxx/xxxx/util/dependencies.py",line25,infromjoblibimportdelayed,load,dumpFile"/root/miniconda/envs/py39/lib/python3.9/site-packa
- Hadoop 版本进化论:从 1.0 到 2.0,架构革命全解析
拾光师
大数据后端
Hadoop版本hadoop1.x版本由三部分组成Common(辅助工具)HDFS(数据存储)MapReduce(计算和资源调度)存在的问题JobTracker同时具备了资源管理和作业控制两个功能,成为了系统的最大瓶颈采用了master/slave结构,master存在单点问题,一旦master出现故障,会导致整个集群不可用采用了基于槽位的资源分配模型,将槽位分为了Mapslot和Reducesl
- Nestjs22之定时任务
前端日记
前端javascript开发语言
1.定时任务的类型Nestjs中有三种任务类型:addCronJob:用于周期性任务,基于Cron表达式addTimeout:用于一次性延迟任务addInterval:基于固定的时间间隔而不是Cron表达式在NestJS中,addCronJob、addTimeout和addInterval是三种不同的定时任务管理方法,下面介绍下他们的区别和使用场景。2.使用场景案例2.1addCronJob(基于
- K8S控制器详解,Deployment,DaemonSet,Job/CronJob,StatefulSet,HPA
skyQAQLinux
docker容器运维linuxkubernetes
控制器:实现pod的自动部署,维护,扩容等DeploymentDaemonSetJob/CronJob高级控制器:有状态的应用,连接到指定的服务,StatefulSet:解决pod的创建顺序,解决pod的访问问题HPA一.Deployment:(ReplicaSet和pod)功能:pod自动部署,维护,更新,版本回滚1.1Deployment资源清单文件---kind:Deployment#资源对
- C# Quartz.net 定时任务
我不许人间见白头
c#.netjavavisualstudiocode开发语言
Quartz.net定时任务官网安装主要成员JobTriggereduler示例:Scheduler简介框架核心接口JobTriggerJobDataMap示例代码如下:Trigger示例代码如下官网https://www.quartz-scheduler.net/documentation/quartz-3.x/how-tos/one-off-job.html安装install-packageq
- 7种方法提高源码阅读技巧
学会了没
源码阅读编程技巧
Readingsourcecodeisinthejobdescriptionofasoftwaredeveloper.However,thisexperienceisnotalwayspleasant.Noteveryonewouldliketoreadsomeoneelse’scodebecausetheyfinditboring,sometimesfrustrating.Therearecas
- C#的各种网络请求方法
唯情于酒
c#开发语言网络
HttpWebRequest需引用usingSystem.Net通用方法:这两个方法自己加进去//获取json字符串中的字段staticstringgetMsg(stringjson,paramsstring[]keys){stringresult=string.Empty;try{JObjectjsonObject=JObject.Parse(json);JTokencurrentToken=j
- 使用 RedisVL 进行复杂查询
Hello.Reader
缓存技术数据库运维java算法人工智能redis
一、前置条件在开始之前,请确保:已安装redisvl并激活相应的Python环境。运行Redis实例,且RediSearch版本>2.4。二、初始化与数据加载我们将使用一个包含用户信息的数据集,字段包括user、age、job、credit_score、office_location、user_embedding和last_updated。以下是初始化索引和加载数据的代码:importpickle
- ORACLE JOB 定时任务
zhaogui_2
SQLoracle数据库sql
每天定时运行存储过程同步一个表的数据至一个表1、设置定时任务declarexjobidnumber;BEGINDBMS_JOB.SUBMIT(JOB=>xjobid,/*自动生成JOB_ID*/WHAT=>'ML_SYNC_LOG_JOB_FROM_SAP;',/*需要执行的存储过程名称或SQL语句*/NEXT_DATE=>sysdate,/*初次执行时间-当前时间*/Interval=>'TRU
- oracle新建定时任务,Oracle创建定时任务
weixin_39948111
oracle新建定时任务
Oracle创建定时任务,下面以创建一个每天凌晨3点钟执行的定时任务为实例。1、创建定时任务DECLAREJOB_IDPLS_INTEGER;BEGINSYS.DBMS_JOB.SUBMIT(JOB=>JOB_ID,WHAT=>'PRO_JOB;',INTERVAL=>'TRUNC(SYSDATE)+1+3/(24)');COMMIT;END;PRO_JOB是你要执行的存储过程名称,多个存储过程已
- Oracle 定时任务
小小数据人
oracle
Oracle数据库提供了DBMS_SCHEDULER包来创建、删除和管理定时任务(job)。下面是一些样例代码:创建一个简单的定时任务:BEGINDBMS_SCHEDULER.CREATE_JOB(job_name=>'my_job',job_type=>'PLSQL_BLOCK',job_action=>'BEGINmy_procedure;END;',start_date=>SYSTIMEST
- 数据库定时
一个跑不快的胖子
bigdatasql
间隔/interval是指上一次执行结束到下一次开始执行的时间间隔,当interval设置为null时,该job执行结束后,就被从队列中删除。假如我们需要该job周期性地执行,则要用‘sysdate+m’表示。(1).每分钟执行Interval=>TRUNC(sysdate,‘mi’)+1/(24*60)每小时执行Interval=>TRUNC(sysdate,‘hh’)+1/(24)(2).每天
- The hierarchical constant bandwidth server scheduler
mounter625
Linuxkernel网络服务器linuxkernel安全
ThePOSIXrealtimemodel,whichisimplementedintheLinuxkernel,canensurethatarealtimeprocessobtainstheCPUtimeitneedstogetitsjobdone.Itcanbelesseffective,though,whentherearemultiplerealtimeprocessescompeting
- python全局解释器锁(GIL)
文章目录1.cpu工作方式2.python全局解释器锁与多线程3.其他语言的多线程4.如何解决假的多线程1.cpu工作方式先来先服务(FirstCome,FirstServed,FCFS):最简单的调度算法,按照作业或进程到达的顺序依次执行。没有考虑作业的执行时间,可能会导致长作业等待时间过长(作业或进程执行时间长的情况下)。最短作业优先(ShortestJobNext,SJN):选择下一个最短的
- php 上传.doc .docx文件,无法上传doc和docx文件
weixin_39631295
php上传.doc.docx文件
在这里我试图上传pdf,doc和docx文件。PDF文件正在上传,但doc和docx文件未上传。我在form标记中保留了enctype="multipart/form-data"属性。我的代码有什么问题。if((($_FILES["uploadjob"]["type"]=="application/pdf")||($_FILES["uploadjob"]["type"]=="application
- rabbitmq重装后重启不了服务
Jerry 二河小鱼
2025运维rabbitmqlinux运维服务器
rabbitmq重装后重启不了服务,提示“Jobforrabbitmq-server.servicefailedbecausethecontrolprocessexitedwitherrorcode.”解决方法:先删除/var/lib/rabbitmq/mnesia文件夹中的所有文件,然后编辑/etc/hosts文件,添加“[服务器内网ip][服务器主机名称][主机名称]”。
- iOS应用性能调优的25个建议和技巧
ysysbaobei
ios性能优化ios性能优化
转载自:http://blog.jobbole.com/37984/首页最新文章资讯程序员设计IT技术创业在国外营销趣文特别分享更多>-Navigation-首页最新文章资讯程序员设计IT技术创业在国外营销趣文特别分享更多>-工具与资源-书籍与教程-自由职业-互联网-管理-运营-人力资源-职场分享伯乐在线>首页>所有文章>程序员>iOS应用性能调优的25个建议和技巧iOS应用性能调优的25个建议和
- 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节点最多