- Milvus 实战全流程
学习路径总览1.Milvus基础知识什么是向量数据库?Milvus的核心概念(collection、field、index、partition、segment)Milvus和Faiss、Annoy、HNSW的区别2.安装与部署Docker快速部署Milvus(推荐)本地开发环境安装使用MilvusLite本地测试3.数据建模与管理创建Collection与Schema定义(包含向量字段和元数据字段
- Springboot+MongoDB简单使用示例
一、maven中添加依赖org.springframework.bootspring-boot-starter-data-mongodb二、配置文件中添加连接spring:mongodb:host:192.168.56.10port:27017database:share#指定操作的数据库三、创建mongodb文档对应的实体类@Data@Schema(description="站点位置")publ
- MyBatis Plus 对数据表常用注解
中东大鹅
mybatisoracle数据库springboot
1.@TableName(1)解释说明@TableName注解用于指定实体类对应的数据库表名,当实体类的名称与数据库表名不一致时,可以用此注解进行映射。此外,@TableName还支持设置一些其他的配置选项,比如全局表名前缀、后缀的处理。value:指定数据库表名。如果没有设置此注解,则会默认映射到与类名相同的表名。schema:指定数据库的schema,适用于多schema的情况。(2)应用示例
- 【Next.js 项目实战系列】02-创建 Issue
Casta-mere
IssuTrackerNext.jsNext.jsIssueTrackerReact
原文链接CSDN的排版/样式可能有问题,去我的博客查看原文系列吧,觉得有用的话,给我的库点个star,关注一下吧上一篇【Next.js项目实战系列】01-创建项目创建Issue配置MySQL与Prisma在数据库中可以找到相关内容,这里不再赘述添加model本节代码链接#schema.prismamodelIssue{idInt@id@default(autoincrement())titleSt
- Apache Ignite Binary Object 调优
lang20150928
其他apacheIgnite
这段内容讲的是ApacheIgnite中BinaryObject(二进制对象)的调优建议。Ignite的BinaryObject是一种高效的序列化机制,它允许你在不加载类的情况下对对象进行序列化、反序列化、查询和更新。为了提高性能和内存使用效率,Ignite对BinaryObject的结构和schema(模式)有特定的处理方式,因此我们需要遵循一些调优建议。下面我们逐条解释这些调优建议,帮助你更好
- 数据湖vs数据仓库:非结构化数据存储的终极对决
AI大数据智能洞察
大数据与AI人工智能数据仓库ai
数据湖vs数据仓库:非结构化数据存储的终极对决关键词:数据湖,数据仓库,非结构化数据,数据存储,Schema-on-Read,Schema-on-Write,数据治理摘要:本文深入对比数据湖与数据仓库在非结构化数据存储领域的核心差异,从技术架构、数据处理范式、应用场景等维度展开分析。通过数学模型、代码实战和典型案例,揭示两者在非结构化数据管理中的优势与局限,为企业数据架构选型提供决策参考。1.背景
- 解决VSCode无法加载Json架构问题
使用VSCode打开Json。json内容如下:{"$schema":"https://schemas.wp.org/trunk/theme.json","version":2,"settings":{},"styles":{},"customTemplates":[],"templateParts":[],"patterns":[]}出现警告:Problemsloadingreference'X
- 数据库锁表相关常用查询语句
altersessionsetcurrent_schema=****查询锁表及锁表人selectl.session_idsid,s.serial#,l.locked_mode,l.oracle_username,l.os_user_name,s.machine,o.object_namefromv$locked_objectl,all_objectso,v$sessionswherel.objec
- 多租户saas mysql_实现saas多租户方案比较
weixin_39535125
多租户saasmysql
看到一篇比较多租户数据隔离方案的文章,总结挺不错。其实大部分内容在我前几年写的文章都有。文章翻译自:多租户意味着同一个应用上有不用的用户隔离。这是非常典型的saas模型。你可以用不同的隔离级别来实现多租户。1.行级别:在每个数据库表里添加tenat_id字段,然后在每个查询语句也添加相应的tenant_id2.schema级别:每个租户有在同一个数据库内自己独立命名空间。可以容易使用Postgre
- FastAPI 中,数据库模型(通常使用 SQLAlchemy 定义)和接口模型(使用 Pydantic 定义的 schemas)的差异
在FastAPI中,数据库模型(通常使用SQLAlchemy定义)和接口模型(使用Pydantic定义的schemas)虽然都用于表示数据结构,但它们有明确的职责区分。以下是它们的核心区别和协作方式:1.数据库模型(Models)位置:通常在models.py中定义技术:使用SQLAlchemyORM目的:直接映射数据库表结构,处理数据库操作特点:fromsqlalchemyimportColum
- 数据库管理-第349期 Oracle DB 23.9新特性一览(20250717)
胖头鱼的鱼缸(尹海文)
Oracle数据库oracle
数据库管理349期2025-07-17数据库管理-第349期OracleDB23.9新特性一览(20250717)1JavaScript过程和函数的编译时语法检查2不再需要JAVASCRIPT上的EXECUTE权限3GROUPBYALL4使用SQL创建并测试UUID5IVF索引在线重组6JSON到二元性迁移器:使用JSONschema进行模式推理7数据库认证的多因素认证8多语言引擎支持数据库驻留连
- python画地图柱状图,小白学Python(16)——pyecharts 绘制地理图表 Geo
都灵Turin
python画地图柱状图
Geo-基本示例1fromexample.commonsimportFaker2frompyechartsimportoptionsasopts3frompyecharts.chartsimportGeo4frompyecharts.globalsimportChartType,SymbolType56geo=(7Geo()8.add_schema(maptype="china")9.add("g
- GraphQL
evanzhou
下载schema.jsonapolloschema:download--endpoint=https://api.github.com/graphqlschema.json--header="Authorization:Bearerxxxxxxxxxxxxxxxx"更新
[email protected]
- 通过外部链接启动 Flutter App(详细介绍及示例)
飞川001
Fluttterflutterxcodeandroidstudio
通过外部链接启动FlutterApp(firebase_dynamic_links和app_links)详细介绍通过外部链接启动flutterApp的使用及示例在我们的APP中,经常有点击链接启动并进入APP的需求(如果未安装跳转到应用商店)。Android通过deeplink或者applink(是deeplink的增强版),iOS通过urlschema,可以打开对应的app,因此我们需要对我们的
- MySQL大表DDL方式对比
三思呐三思
MySQLOnlineDDLgh-ostpt-oscMySQLDDL
文章目录一、原生DDL、OnlineDDL1.1Onlineddl操作原理1.2DDL操作的两个参数1.3OnlineDDL操作空间存储的要求二、pt-online-schema-change2.1pt-osc的大致流程:2.2pt-osc的特点2.3使用pt-osc的约束2.4操作示例三、gh-ost3.1gh-ost的三种模式3.2gh-ost的特点3.3使用gh-ost的约束线上环境的大表D
- VUE实训(三)
昨天的牛肉
目标:创建学院管理模块(学院和学校关联起来)一、后台三步骤:1、打开projectName文件,在models目录下创建academy.js文件,接着文件操作:constmongoose=require('mongoose')constSchema=mongoose.Schemaconstfeld={name:String,//人物标签major:String,renshu:Number,scho
- 网站前端开发-实训续篇+总结
yue_jia
实训五学生管理篇(可将学校、学院、班级与学生关联起来)一、从后端(projectName)添加学生模块1、在models目录下添加student.js:image.pngprojectName/db/models/student.js:constmongoose=require('mongoose')constSchema=mongoose.Schemaconstfeld={name:String
- 数据湖与数据仓库在云平台的融合架构:Delta Lake实战指南
AI云原生与云计算技术学院
AI云原生与云计算数据仓库架构ai
数据湖与数据仓库在云平台的融合架构:DeltaLake实战指南关键词:数据湖,数据仓库,云平台,融合架构,DeltaLake,湖仓一体,数据治理摘要:本文深入探讨数据湖与数据仓库在云平台的融合架构,以DeltaLake为核心技术载体,解析湖仓融合的技术原理、实施路径及最佳实践。通过对比传统数据架构的痛点,阐述DeltaLake如何通过ACID事务、Schema管理、时间旅行等特性实现非结构化数据湖
- Docker初识:mysql8主从复制(单向)- 主从搭建扩展知识
滴水可藏海
#mysql数据库
主从服务(master-slave)新学习到的知识。1、全库同步与部分同步上回书说到Docker初识:mysql8主从复制(单向)的配置都是针对全库配置的。但是实际上并不需要针对全库做备份,只需要对一些特别重要的库或者表来进行同步。例如information_schema等。可以通过配置文件中的一些属性指定需要针对哪些库或者哪些表记录binlog。Master配置:#需要同步的二进制数据库名bin
- python如何删除xml中的w:ascii属性
detayun
Pythonpythonxml
可以使用Python的xml.etree.ElementTree模块通过以下步骤删除XML中的w:ascii属性:importxml.etree.ElementTreeasET#原始XML片段(需包含命名空间声明)xml_str=''''''#注册命名空间namespaces={'w':'http://schemas.openxmlformats.org/wordprocessingml/2006
- 命令绑定非默认事件
lph1972
c#
导入NuGet包必须Install-PackageMicrosoft.Xaml.Behaviors.Wpfxmlns:i="http://schemas.microsoft.com/xaml/自己的命名空间一般clr-namespace:系统的一般就是类似网址这里必须用隧道事件preview用冒泡没反应就记住mvvm绑定非默认事件只能用隧道
- oracle 数据库迁移expdp,impdp(数据泵导出导入)方法
小张是铁粉
oracle数据库
一.优缺点优点:1.高效性能:expdp,impdp使用并行技术,可以显著提高导出导入速度,尤其适用于大数据量的迁移。支持压缩和加密,减少导出文件的大小并提高安全性。2.灵活的对象选择:可以导出整个数据库、特定表空间、用户(Schema)或单个表。支持过滤条件,例如只导出特定表的数据或元数据。3.跨平台兼容性:支持跨平台迁移(例如从Linux到Windows),但需要注意字节序(endiannes
- MySQL常用操作 查看表描述以及表结构、连接数及缓存和性能指标
查看表描述以及表结构查看数据库名SHOWDATABASES;SELECTDATABASE();SELECTDATABASE()AScurrent_database;查看数据库中表的列表SHOWTABLES;SELECTTABLE_NAME,TABLE_COMMENTFROMINFORMATION_SCHEMA.TABLESWHERETABLE_SCHEMA='your_database_name'
- 数据仓库技术及应用(Hive 产生背景与架构设计,存储模型与数据类型)
娟恋无暇
数据仓库笔记hive
1.Hive产生背景传统Hadoop架构存在的一些问题:MapReduce编程必须掌握Java,门槛较高传统数据库开发、DBA、运维人员学习门槛高HDFS上没有Schema的概念,仅仅是一个纯文本文件Hive的产生:为了让用户从一个现有数据基础架构转移到Hadoop上现有数据基础架构大多基于关系型数据库和SQL查询Facebook诞生了Hive2.Hive是什么官网:https://hive.ap
- xml笔记
shuangmu9768
java笔记xmljavaschemaxsd
【1】基础【2】schema示例【3】schema校验【4】xsd位置【1】基础#xmlns命名空间的语法xmlns:namespace-prefix="namespaceURI"#targetNamespace该属性声明了本XMLSchema文档中定义的元素是属于targetNamespace属性指定的命名空间(URI)下的。可以将默认命名空间xmlns和targetNamespace给定不一样
- greenplum查询超时_Greenplum常用SQL查询
抽空网上收罗Greenplum常用SQL查询语句整理备忘。欢迎各位留言补充。都是SQL命令以及数据字典的使用。熟悉数据字典非常重要。三个重要的schema:pg_catalog,pg_toolkit,information_schema,其中information_schema中的数据字典都在视图中目录一、查看表某模式所有分布键信息二、数据库运行状态查询管理1.greenplum查询正在运行的sq
- postgresql|数据库|只读用户的创建和删除(备忘)
CREATEUSERread_onlyWITHPASSWORD'密码'--连接到xxx数据库\cxxx--授予对xxx数据库的只读权限GRANTCONNECTONDATABASExxxTOread_only;GRANTUSAGEONSCHEMApublicTOread_only;GRANTSELECTONALLTABLESINSCHEMApublicTOread_only;GRANTEXECUTE
- 数据库锁等待时间过长问题的深度解析与大数据解决方案
百态老人
数据库大数据
一、锁等待问题的核心原因与日志特征锁等待超时是数据库高并发场景下的典型瓶颈问题,其根本原因与日志特征可归纳为以下维度:事务管理缺陷原因:未提交的长事务(如代码分支遗漏提交)、隐式事务(自动提交关闭)导致锁持有时间过长。日志特征:information_schema.innodb_trx表中存在trx_started时间早于当前时间数分钟的事务。错误日志中频繁出现Lockwaittimeoutexc
- MySQL 报错Lock wait timeout exceeded; try restarting transaction
A486525173
mysql数据库
处理MySQL报错Lockwaittimeoutexceeded;tryrestartingtransaction1.使用SELECT*FROMinformation_schema.INNODB_TRX;定位未结束的事务,在查询出来的数据找到要删除的事务取出trx_mysql_thread_id的ID使用KILLtrx_mysql_thread_id结束事务
- 【poi】java操作office(一)
依赖poi是导出excel需要引入的包;poi-ooxml和poi-ooxml-schemas是导出word需要引入的包poi是操作xls的,poi-ooxml是操作xlsx的org.apache.poipoi4.1.2org.apache.poipoi-ooxml4.1.2org.apache.poipoi-ooxml-schemas4.1.2POI结构HSSF——读写xlsxls的最大行列数量
- 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节点最多