- javascript Day_1
Mswanga
javascript前端javajavascript
script的书写位置1,写在标签的正上方constnewItem=12,写在外部,然后引入到HTML文件输入输出1.输入:prompt('请输入一段文字')结果:会显示一个对话框,包含一个文字信息,用来提示用户输入。2.输出://普通输出document.write('要输出的内容')//内容可以包含标签//弹出警告框输出alert('要输出的内容')//控制台打印输出,程序员可见console
- 【Prometheus】prometheus 架构介绍
Learn Forever
Prometheus架构运维docker
1.组件说明prometheusserver是Prometheus组件中的核心部分,负责实现对监控数据的获取,存储以及查询。exporter简单说是采集端,通过http服务的形式保留一个url地址,prometheusserver通过访问该exporter提供的endpoint端点,即可获取到需要采集的监控数据。AlertManager在prometheus中,支持基于PromQL创建告警规则,如
- DrissionPage 过cf5秒盾
高质量海王哦
pythonpython
自动化过五秒盾fromDrissionPageimportChromium,ChromiumOptionsco=ChromiumOptions()co.incognito()co.set_local_port(9911)browser=Chromium(co)browser.clear_cache()browser.set.auto_handle_alert()#标签页操作tab=browser.
- JavaScript
数据潜水员
javascript前端开发语言
1.JavaScript是什么?①在浏览器中运行②是编程语言③作用:完成人与页面交互2.JavaScript组成:ECMA规范+WebAPIs(DomBom)3.JavaSctipt有内部,外部,行内三种书写位置alert('我是弹窗')//单行注释快捷键:ctrl+//**/双行注释快捷键:shift+alt+A4.输入输出语法1)document.write('要出的内容')作用:向body输
- js触发onclick事件获取文本框中的值value
吾与谁归in
Web前端jsjavascripthtml5
1.首先我们创建一到两个文本框,使用标签用户名:密码:2.接着我们创建script代码,创建函数获取文本框中的值,获取值是通过文本框的id获取的,使用到了标签/**创建函数*/functiononclickFun(){/*通过id获取元素*/varuser=document.getElementById("name")/*警示窗口*/alert("你好【"+user.value+"】,欢迎进入系统
- Android入门(七) | 常用控件
·Jormungand
Androidandroidjavaandroidstudio
文章目录TextView控件:文本信息Button控件:按钮EditText控件:输入框ImageView控件:图片ProgressBar控件:进度条AlertDialog控件:提示框ProgressDialog控件:带有进度条的提示框TextView控件:文本信息TextView是Android中较常用的一个控件。主要用于在界面上显示一段文本信息,配置在每个活动的xml文件中。除了之前用到的an
- 小米便签——ui包详细解读
一号言安
软件工程——AndroidStudio小米便签项目ui
目录ui:用户界面类1AlarmAlertActivity2AlarmInitReceiver3AlarmReceiver4DateTimePicker5DateTimePickerDialog6DropdownMenu7FoldersListAdapter8NoteEditActivity9NoteltemData10NotesListActivity11NoteEditText12NotesL
- Flutter 中的弹窗与提示组件:Dialog、AlertDialog、SimpleDialog、showModalBottomSheet 和 showToast 详解
阿贾克斯的黎明
安卓flutter
目录Flutter中的弹窗与提示组件:Dialog、AlertDialog、SimpleDialog、showModalBottomSheet和showToast详解Dialog:通用弹窗基础AlertDialog:常用的提示弹窗SimpleDialog:简单的选项弹窗showModalBottomSheet:底部弹出菜单模拟showToast效果在Flutter开发中,弹窗和提示组件是提升用户交
- Hbase在hdfs上的archive目录占用空间过大
宝罗Paul
大数据hbase
hbase版本:1.1.2hadoop版本:2.7.3Hbase在hdfs上的目录/apps/hbase/data/archive占用空间过大,导致不停地发出hdfs空间使用率告警。【问题】告警信息alert:datanode_storageistriggered告警信息表明某个或某些datanode的HDFS存储空间使用率已超过阈值(我们设置的是80%),需要清理。[hdfs@master-2r
- Python 记录日志报警的方式
Tipriest_
Python学习python前端logging报警alarmmail
在Python标准库中,可以列举出如下常见场景日志报警解决方案:方案1:简单日志告警(推荐基础方案)importloggingdefsend_alert(message):logging.error(f"ALERT:{message}")#可扩展:同时写入文件/发送到日志服务器#配置日志格式logging.basicConfig(level=logging.ERROR,format='%(asct
- 使用第三方工具监控 SpringBoot 接口超时,简单几步搞定!
程序员蜗牛g
springbootspringboot后端java
点击上方“程序员蜗牛g”,选择“设为星标”跟蜗牛哥一起,每天进步一点点程序员蜗牛g大厂程序员一枚跟蜗牛一起每天进步一点点31篇原创内容公众号为了实现SpringBoot项目的接口超时监控并触发邮件告警,以下是一些常用的第三方工具和解决方案,可根据项目规模和需求灵活选择。一、开源方案1.Prometheus+Alertmanager+Grafana功能特点:Prometheus:时序数据库,实时采集
- 原生JS和CSS,HTML实现开屏弹窗
QTX18730
csshtmljavascript
开屏弹窗常应用于打开游戏,或者打开网站的时候,跳出来在正中间,来显示一些信息,并可以设置今日不再显示CSS代码如下#box{width:100vw;height:100vh;background-color:rgba(0,0,0,0.2);position:relative;display:none;}.alerts{width:250px;height:400px;background-colo
- oracle 6508,【案例】Oracle报错ORA-06552 ORA-06553 ORA-006508解决办法
一条胖咸鱼
oracle6508
天萃荷净Oracle研究中心案例分析:运维DBA反映Oracle数据库alert日志中出现大量ORA-06552ORA-06553ORA-006508报错,分析原因为存储过程异常导致,结合MOS官方解决办法。下面数据库来至于一个朋友,他们生产数据库alert.log后台不到的停下面类似的错误,每次报错都是不同的存储过程名。ErrorsinfileD:\APP\LUOPING\diag\rdbms\
- ocp 之 Prometheus Operator ~Operator-Prometheus原理 -JG第一次-PrometheusRule - Prometheus断点每周
yuezhilangniao
k8sPrometheus
Prometheus的告警恢复和修改operator版Prometheus默认的Prometheus.ymlgpt回答告警问题如果您没有收到Prometheus的告警恢复通知,请检查以下几个可能的原因:检查Alertmanager的配置文件中的group_wait参数是否正确设置。group_wait参数定义了Alertmanager在发送告警恢复通知之前等待的时间,以便其他相关告警的解决状态被合
- layui获取select 文本_layui下拉框获取下拉值(select)的例子
weixin_39658966
layui获取select文本
layui下拉框获取下拉值(select)的例子如下所示:$(document).ready(function(){layui.use('form',function(){varform=layui.form;form.render();form.on('select',function(data){//alert(data.value);console.log(data.value);});})
- 解决 Gitlab 13.8.2-ce.0 在 Ubuntu 18.04.5 LTS 上启动失败问题
路痴哥斯拉
linux
公司一台ubuntu,装了gitlab-ce简单使用,最近断了两次电gitlab趴窝两次,记录下解决过程1.机器重启后,启动命令,提示错误$sudogitlab-ctlstartfail:alertmanager:runsvnotrunningfail:gitaly:runsvnotrunningfail:gitlab-exporter:runsvnotrunningfail:gitlab-wor
- Oracle 12CR2 中alert.log出现大量的 WARNING: too many parse errors 告警
weixin_34007886
数据库运维
Oracle12CR2中alert.log出现大量的WARNING:toomanyparseerrors告警日志如下:2018-06-24T17:16:21.024586+08:00WARNING:toomanyparseerrors,count=3800SQLhash=0x03b77f5bPARSEERROR:ospid=6223,error=1031forstatement:2018-06-2
- alter日志报WARNING: too many parse errors
weixin_30480075
数据库版本:12.2.0操作系统版本:RHEL7.2最近观察到一个数据库alert日志老是报硬解析太多错误,且对应的sql语句都是查看数据字典表:2017-06-16T08:46:46.417468+08:00TTEST(4):WARNING:toomanyparseerrors,count=100SQLhash=0x03b29074TTEST(4):PARSEERROR:ospid=3504,e
- WPS JS宏实现批量删除工作表功能
神马浮云呀
wpsjavascript
这里用到了Delete()函数,但是删除工作表时会出现一个问题,就是如果sheet表里有数据,就会激发系统保护功能,弹出警告信息提示框,从而打断批量删除。//批量删除工作簿中除名为"XXX"之外的所有工作表functionDeleteSh(){//关闭屏幕刷新和警告弹窗with(Application){ScreenUpdating=false;DisplayAlerts=false;}for(v
- Node.js和浏览器对JavaScript的支持区别
熬夜不洗澡
node.jsjavascript开发语言
浏览器和Node.js的区别主要体现在运行环境、API支持、模块机制等方面,以下是核心差异及验证方法:一、核心差异对比全局对象不同浏览器:全局对象为window,例如alert()、document等均挂载于此。Node.js:全局对象为global,提供process、Buffer等服务器端专用API。内置API差异浏览器特有:DOM/BOM操作(如document、location)、前端事件
- 用python做youtube自动化下载器 代码
Eritque arcus
pythonpythonyoutubejs解密
用python做youtube自动化下载器代码项目地址思路流程1.posti.先把post中的headers格式化ii.然后把参数也格式化iii.最后再执行`requests`库的post请求iv.封装成一个函数2.调用解密函数i.分析ii.先取出js部分iii.取第一个解密函数作为我们用的解密函数iv.用execjs执行1.this也就是window变量不存在2.alert不存在v.整合代码3.
- 包含32英文特殊字符,正则表达式验证
moqiyong666
正则表达式
//JavaStringpattern=".*[~!@#$%^&*()_+|\?\`\-\=\[\]\\;\'\,\.\/])/;alert(pattern.test("~"));
- js常用方法整理
初叙
JavaScript基础javascript前端开发语言
then()方法的使用then()方法是异步执行的,即当then()之前的方法执行完成后再执行then()里面的程序。promise.then(onCompleted,onRejected);$.each()遍历数组vararr=[1,2,3,4];$.each(arr,function(i,n)){alert("索引"+i+"对应的值"+n);}
- DVWA指点迷津-XSS(DOM)
肉肉球麻里
网络安全安全xss安全漏洞
DOMBasedXSS特点既可能是反射型,也可能是存储型。利用前端的DOM树来造成XSS攻击。漏洞危害泄露用户的Cooike泄露用户的IP地址、浏览器信息篡改网页XSS钓鱼DVWALow应用防御措施仅有前端代码,服务器无任何防御措施攻击方式通过修改URL传递参数,构造XSS测试payloadPayload:?default=alert('xss')Medium应用防御措施服务器做了对“script
- DVWA - XSS DOM (medium)
S1xTwe1ve
dvwa
随便在选项里选一个,url中会出现我们选的哪个。看看可不可以用alert(document.cookie)127.0.0.1/DVWA-master/vulnerabilities/xss_d/?default=alert(document.cookie)发现不会执行,而且语句也没有在url中显示,只显示English应该是过滤了方法一换一个试一下127.0
- JavaScript——操作浏览器窗口
yiqi_perss
JavaScript
学习内容:今天学习了alert提示框,提示框中的内容,就是alert后边小括号中的内容例如:alert('我要学JavaScript!');alert('我要学习!');学习总结:日常小总结例如:后面的分号;可以随便去掉,不影响运行效果。不能去掉小括号,否则会报错,不信你可以试试。必须是英文引号,否则会报错。课外扩展:历史渊源例如:ECMAScript是一种语言标准,而JavaScript是网景公
- JavaScript案例(简易ATM机)
fusheng_cn
前端JavaScriptjavascript前端
Documentvarnum=100;do{varoperate=prompt("请输入您需要的操作:\n1.存钱\n2.取钱\n3.显示余额\n4.退出");switch(parseInt(operate)){case1://存钱varmoney1=prompt("请输入您需要存入的钱数:");varsum1=num+parseInt(money1);alert("您的余额为:"+sum1);n
- Oracle Alert 日志频繁告警 12170 TNS-12535/TNS-00505,我看看怎么个事儿?
Lucifer三思而后行
DBA实战系列oracle数据库
大家好,这里是公众号DBA学习之路,致力于分享数据库领域相关知识。目录前言问题描述问题重现解决方案调整防火墙调整Oracle参数治标不治本写在最后前言节后巡检一套Oracle11GR2的库,发现alert日志很大,于是看看alert日志里都记录了啥?好家伙,一打开日志发现全是告警TNS-12170/12535/12560/00505,一眼刷不到头:*************************
- _05JavaScript
The_era_achievs_hero
学习前端js
第五次网课1.JavaScript的书写位置内部JS//页面弹出警示框alert('你好,js~')外部JS(最多)内联(行内)(以后vue框架会用这种模式)点我月薪过万2.JavaScript的注释与结束符单行注释符号://ctrl+/多行注释符号:/**/shift+alt+a结束符用;表示结束可写可不写,要么全都写,要么全不写vue.js不加分号3.JavaScript的输入输出语法输出中文
- js根据指定字符截取字符串(正则方式)
i'm wxm
javascript前端开发语言
1、截取两个字符之间的字符串varstr="aaabbbcccdddeeefff";str=str.match(/aaa(\S*)fff/)[1];alert(str);//结果bbbcccdddeee2、截取指定字符串前varstr="这个是一句话";str=str.match(/(\S*)是/)[1];alert(str);//结果--->这个3、截取指定字符后varstr="这个是一句话";
- 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节点最多