- Rust 中使用 :: 这种语法的几种情况
yujunlong3919
rustrust区块链
文章目录1.访问模块成员:2.访问关联函数或静态方法:3.访问trait的关联类型或关联常量4.指定泛型类型参数1.访问模块成员:modutils{pubfndo_something(){/*...*/}}letresult=utils::do_something();2.访问关联函数或静态方法:structMyStruct;implMyStruct{fnnew()->Self{MyStruct}
- Python's SQLAlchemy and Object-Relational Mapping
zhanglizhuo
Python
Acommontaskwhenprogramminganywebserviceistheconstructionofasoliddatabasebackend.Inthepast,programmerswouldwriterawSQLstatements,passthemtothedatabaseengineandparsethereturnedresultsasanormalarrayofrec
- 力扣-二叉树-501 二叉搜索树的众数
夏末秋也凉
力扣#二叉树leetcode算法
思路二叉搜索树的特性就是中序遍历有序,所以思考时可以先按照有序数组思考代码classSolution{public:vectorresult;TreeNode*pre=nullptr;intcount=1;intmaxCount=0;voidtravesl(TreeNode*node){if(node==nullptr)return;travesl(node->left);if(pre!=null
- 代码随想录Day57
二手木乃伊
代码随想录动态规划java
Day57今日任务回文子串516.最长回文子序列动态规划总结篇代码实现回文子串classSolution{publicintcountSubstrings(Strings){//dp[i][j]表示[i,j]是否是回文子串intresult=0;boolean[][]dp=newboolean[s.length()][s.length()];char[]chars=s.toCharArray();
- 华大MCU HC32F005端口GPIO控制失效问题
黄大刀
单片机嵌入式硬件
1.问题来源:RS485通信时,且数据量大、持续运行一段时间后,发现RS485使能引脚没有得到释放,导致总线锁死,无法通信,影响到整个总线的设备。2.问题分析:1)经过测试和跟踪,使能脚的释放指令已经执行,但是引脚实际并没有生效。2)网上找到的资料说是端口竞争冒险问题,在发生中断后可能发生无法有效控制的情况,与本次现象很相似。3.解决办法:修改前使用的GPIO控制函数为:en_result_tGp
- 十四、Flink源码阅读--JobGraph生成过程
灰二和杉菜
ApacheFlinkFlinkJobGraph生成源码分析
上篇分析了client整个提交任务过程,最终提交的是一个JobGraph对象,那么是如何从jar或sql任务转为JobGraph的呢,这篇我们仔细研究一下,版本为1.6.3源码分析上篇我们介绍client端提交任务最终会到到ClusterClient.run()方法,就在这个方法中封装了JobGraph的步骤。publicJobSubmissionResultrun(FlinkPlancompil
- [生活杂项][运动教程]自由泳
xcy6666
生活
https://v.youku.com/v_show/id_XMzgzMjkwMzg0MA==.html?spm=a2h0k.11417342.soresults.dtitlehttps://v.youku.com/v_show/id_XMzgxNjM2NjY4NA==.html?spm=a2h0k.11417342.soresults.dtitle
- Notepad++ 还原Find result窗口的正确方法,100%成功。
BrainZou
notpad++findresult
缩小Notepad++窗口,不要全屏。点击Findresult窗口不放,一直往下拖,直到鼠标位置对准Notepad++的主窗口的下边缘。如下图:重点:缩小窗口,一直往下拖。
- python学习 列表 字典 集合 面对对象编程 闭包 装饰器 函数式编程 作用域 异常处理
Scikit-learn
机器学习python算法python学习开发语言
SIGIA_4Ppython学习列表字典集合面对对象编程闭包装饰器函数式编程作用域异常处理本文连接简介SIGIA_4P网址a.课程OKRObjectivesandKeyResults即目标与关键成果法目标,Objectives:掌握AI领域的Python开发成果1KR1linux目录结构[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-r864ykpN-16917885
- 鸿蒙Next 图片高斯模糊处理
anthonyzhu
harmonyos华为
鸿蒙next中对图片的高斯模糊处理,主要是使用effectKit实现针对的pixelMap,代码处理如下所示importeffectKitfrom'@ohos.effectKit'import{image}from'@kit.ImageKit';try{letfd=fs.openSync(result,fs.OpenMode.READ_ONLY).fd;conststat=fs.statSync(
- iOS 获取设备占用内存
Johnny Tong
iOS之旅ios内存HOST_VM
获取应用占用内存获取应用进程占用内存-(NSUInteger)memoryUsage{task_vm_info_data_tvmInfo;mach_msg_type_number_tcount=TASK_VM_INFO_COUNT;kern_return_tresult=task_info(mach_task_self(),TASK_VM_INFO,(task_info_t)&vmInfo,&co
- Lineageos 22.1(Android 15)更换开机动画
JabamiLight
Lineageosandroid开机动画Lineageos22.1Android15
一、原理简介我们直接用最简单的替换zip的方式来更换开机动画,首先我们要查看系统代码使用的zip包的路径,可能与aosp原生的代码不一定一样。/frameworks/base/cmds/bootanimation/BootAnimation.cppboolBootAnimation::threadLoop(){ATRACE_CALL();boolresult;initShaders();//Weh
- ASP.NET MVC或者.net Core mvc 页面使用富文本控件的 保存问题
weixin_30949361
https://blog.csdn.net/leftfist/article/details/69629394目前在做的项目存在XSS安全漏洞!原因是有一些页面使用了富文本编辑框,为了使得其内容可以提交,为相关action设置了[ValidateInput(false)]特性:[HttpPost][ValidateInput(false)]publicActionResultMailPreview
- 1.力扣热题100
珍珠是蚌的眼泪
刷题leetcode力扣热题100
文章目录一、两数之和二、字母异位词分组三、最长连续序列一、两数之和publicint[]twoSum(int[]nums,inttarget){HashMapnumIndexMap=newHashMap();int[]result=newint[2];for(inti=0;i>groupAnagrams(String[]strs){Map>strListMap=newHashMapcurList=
- 13.二叉树所有路径
Vacant Seat
java数据结构算法b树
二叉树所有路径因为要从根节点到叶子节点,所以使用前序遍历(中左右)这道题目涉及到回溯问题,因为需要把路径记下来,需要回溯来回退一个路径再进入另一个路径先使用递归的方式,来做前序遍历。递归三部曲:递归函数的参数和返回值要传入根节点,记录每一条路径的path,和存放结果集的result,不需要返回值确定递归终止条件遇到叶子节点就返回,所以if(cur.left==null&&cur.right==nu
- android-为手机设置全局代理
carden_coder
agentandroidandroid
有这么一个需求,需要给手机设置全局代理。百度到的结果都是设置后,如果需要清除代理的话,需要重启手机,这里使用的方式是不需要重启的方式后实现方式如下:设置代理:String[]strings={"settingsputglobalhttp_proxy"+ip+":"+port};ShellUtils.CommandResultcommandResult2=ShellUtils.execCmd(str
- STAR法则是一种结构化的面试和自我评估工具,包括情境(Situation)、任务(Task)、行动(Action)、结果(Result)四个要素。以下为你介绍它的运用方法并举例
南北极之间
职场和发展面试沟通表达
STAR法则是一种结构化的面试和自我评估工具,包括情境(Situation)、任务(Task)、行动(Action)、结果(Result)四个要素。以下为你介绍它的运用方法并举例:运用方法情境(Situation):描述事件发生的背景、环境,包括时间、地点、人物等关键信息,让他人清楚了解事情发生的来龙去脉。任务(Task):明确在该情境下需要完成的任务或目标,任务阐述应具体、清晰,突出重点与难点。
- springboot 上传图片 转存成webp
键盘侠007
springbootokhttpandroid
第一步先引入包org.sejda.imageiowebp-imageio0.1.6下面就是上传的时候处理的了/***通用上传请求(单个)*/@PostMapping("/upload")publicAjaxResultuploadFile(MultipartFilefile)throwsException{try{//上传文件路径StringfilePath=RuoYiConfig.getUplo
- 【python自用函数】负数向下取整,正数向上取整
一只小白跳起来
Python常用函数python开发语言pycharm经验分享笔记numpy
1.最终结果array=np.array([[1.2,-1.2],[2.5,-2.5]])expanded_array=expand(array)print(expanded_array)[[2.-2.][3.-3.]]2.取整知识2.1.向上取整取大于或等于给定数的最小整数importmath#示例number=4.1result=math.ceil(number)print(result)#输
- ABC392 G FFT求卷积模板
一条大祥脚
算法
首先卷积就是如下的定义他有啥用呢,如果ai,bja_i,b_jai,bj对ai∗bja_i*b_jai∗bj有贡献,我们可以把a,ba,ba,b转化成cntcntcnt数组,然后做卷积,那么result(ai∗bj)result(a_i*b_j)result(ai∗bj)就会记录答案。比如如果我们用卷积来做a+ba+ba+b问题的话,给你a,ba,ba,b数组,问a+b=ca+b=ca+b=c,对
- .NET-随机数Random(.NET 8)
code-Study
C#.NETc#.net开发语言
一、线程安全的RandomRandomrandom=Random.Shared;二、从数组中随机获取几个值int[]ints=newint[]{1,2,3,4,5};Randomrandom=Random.Shared;varresults=random.GetItems(ints,2);foreach(variteminresults){Console.WriteLine(item);}三、乱序
- 2. 大整数
LBJ辉
javascript前端
超过整数存储范围的大整数两个超过整数存储范围的大正整数求和/***两个超过整数存储范围的大正整数求和*@param{String}a*@param{String}b*/functionsum(a,b){letresult=''constlen=Math.max(a.length,b.length)a=a.padStart(len,'0')b=b.padStart(len,'0')letaddOne
- yolov8(8.2.10)+deepsort(demo)
fengsongdehappy
YOLO
只需要训练好yolov8的检测模型然后调用:results=model.track(frame,persist=True)#执行跟踪,persist=True表示持续跟踪。保持同一个人在多帧画面的id一就可以完整代码:importcv2importnumpyasnpfromultralyticsimportYOLOfromcollectionsimportdefaultdict#框的中心点的历史轨
- 代码随想录 Day 32 |【第八章 贪心算法 part 01】理论基础、455.分发饼干、376. 摆动序列、53. 最大子序和
Accept17
贪心算法算法
一、理论基础代码随想录1.什么是贪心贪心的本质是选择每一阶段的局部最优,从而达到全局最优。2.贪心的解题步骤将问题分解为若干个子问题找出适合的贪心策略求解每一个子问题的最优解将局部最优解堆叠成全局最优解二、455.分发饼干代码随想录1.解题思路尽量用最大的饼干去满足胃口大的孩子。2.代码实现(1)因为是用大饼干满足胃口大的孩子,所以对饼干、孩子胃口数组排序。定义一个result变量,用于记录喂饱了
- 【20天快速掌握Python】day08-高阶函数
菜鸟进阶站
Python编程后端开发python开发语言numpy
1.递归函数什么是递归函数?如果一个函数在内部不调用其它的函数,而是自己本身的话,这个函数就是递归函数。递归函数的作用举个例子,我们来计算阶乘n!=1*2*3*...*n解决办法1:使用循环来完成 defcal(num): result,i=1,1 whilei函数对应的数据类型是function,可以把它当做是一种复杂的数据类型。既然同样都是一种数据类型,我们就可以把它当做数字或者字符串
- MATLAB出现“变量似乎要更改脚本中每个循环迭代的大小。请考虑对速度进行预分配。”警告如何解决...
滚菩提哦呢
算法
这个警告意味着你在MATLAB脚本中使用了一个循环,循环迭代中修改了变量的大小,但是未对该变量进行预分配。这可能会影响脚本的效率和性能。解决方案是:在循环开始前,通过预先分配内存来提高脚本的性能。例如,如果要循环一百次并将结果保存在数组中,可以在循环前执行以下操作:result=zeros(1,100);fori=1:100result(i)=...end这样可以避免MATLAB在循环中多次分配内
- 哈希表-两个数的交集
Hasno.
散列表算法数据结构
代码随想录-刷题笔记349.两个数组的交集-力扣(LeetCode)内容:集合的使用,重复的数剔除掉,剩下的即为交集,最后加入数组即可。classSolution{publicint[]intersection(int[]nums1,int[]nums2){Setresult=newHashSetmap=newHashMap<>();for(inti:nums1){map.put(i,map.ge
- Oracle PL/SQL统计指定表中各字段的空值、空字符串或零值比例
weixin_30777913
oraclesql数据库
--创建结果存储表CREATETABLEtable_analysis_result(database_nameVARCHAR2(100),table_nameVARCHAR2(100),column_nameVARCHAR2(100),data_typeVARCHAR2(100),empty_countNUMBER,total_rowsNUMBER,empty_percentNUMBER);DEC
- Python中的//, /, % 运算符详解与区别
Sitin涛哥
Pythonpython开发语言
更多资料获取个人网站:ipengtao.com在Python中,//,/,%是常用的数学运算符,用于执行整除、除法和取余操作。本文将深入探讨这三个运算符的作用、用法以及区别,并通过丰富的示例代码帮助大家更好地理解它们的用途。整除运算符//整除运算符//用于执行两数相除并返回不大于结果的最大整数。这与常规的除法有所不同,它丢弃小数部分,只保留整数部分。result=10//3print(result
- 时间盲注,boolen盲注,获取表、列、具体数据的函数
~
数据库javamysql
boolen盲注importrequestsdefboolean_based_injection(url,payload_template):"""布尔盲注的核心函数,通过二分法逐字符推断数据。"""result=''foriinrange(1,50):#假设目标字段长度不超过50low,high=32,128#ASCII码范围whilelow{mid}--")defget_all_table_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节点最多