- leetcode 贪心算法
gufly-
leetcode贪心算法算法
刷题记录以局部最优推出整体最优,且想不到反例,则可以尝试贪心算法455.分发饼干从后向前遍历孩子数组,用大饼干满足胃口大,并统计满足小孩数量classSolution(object):deffindContentChildren(self,g,s):g.sort()s.sort()res=0ind=len(s)-1foriinrange(len(g)-1,-1,-1):ifind>=0ands[i
- HTML中的块元素与行内元素
王哈哈嘻嘻噜噜
html前端
1.块级标签块级元素会独占一行,通常用于构建页面的结构。常见的块级元素包括::通用的块级容器。没有任何语意。可以创建网页的不同部分,导航栏侧边栏等。链接1链接2链接3若是想创建一个初始带标签的话:可以直接:#nav或者div.nav或者div#nav创建第二个div标签,第一个是导航栏,第二个就是主要内容了.content文章标题文章内容文章内容文章内容:段落。到:标题。:无序列表。:有序列表。:
- Dubbo+zookeeper
可乐丿不加冰
zookeeper分布式java
Dubbo+zookeeperdubbo中文官方文档:https://dubbo.gitbooks.io/dubbo-user-book/content/preface/background.html随着互联网的高速发展,网站不断地扩大,我们的垂直应用架构无法应对,分布式服务架构以及流动计算架构势在必得,急需一个治理系统确保架构有条不紊的演进网站架构迭代:单一应用架构(所有功能都写在一个方法中)-
- android okhttp几种日志拦截级别区别
stevenzqzq
androidokhttp
一说明1代码enumclassLevel{/**Nologs.*/NONE,/***Logsrequestandresponselines.**Example:*```*-->POST/greetinghttp/1.1(3-bytebody)**POST/greetinghttp/1.1*Host:example.com*Content-Type:plain/text*Content-Length
- 第一行代码(第三版)kotlin-android-extensions报错处理
代码随想笔记
androidkotlin开发语言
classMainActivity:AppCompatActivity(){overridefunonCreate(savedInstanceState:Bundle?){super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)valmBt_1:Button=findViewById(R.id.button1)
- CSS—补充:CSS计数器、单位、@media媒体查询
Book_熬夜!
前端css媒体前端html
目录1.CSS计数器嵌套计数器:对列表元素:2.单位绝对长度:相对长度:3.@media媒体查询1.CSS计数器CSS计数器就像“变量”。变量值可以通过CSS规则递增(将跟踪它们的使用次数)。如需使用CSS计数器,我们将使用以下属性:counter-reset-创建或重置计数器counter-increment-递增计数器值content-插入生成的内容counter()或counters()函数
- pyscript的用法
新时代_打工人
pythonpython开发语言前端框架
PyScript核心特性Pythoninthebrowser:启用drop-incontent、外部文件托管(基于Pyodide项目),以及不依赖服务器端配置的应用程序托管。Python生态:提供流行的Python和科学计算软件包(例如numpy,pandas,scikit-learn等)。PythonwithJavaScript:在Python和JavaScript对象和命名空间之间进行双向通信
- 解释 HTTP 中的内容协商,如何根据客户端偏好返回合适的内容?
程序员黄同学
前端开发JavaScriptnode.jshttp网络协议网络
一、内容协商的解释(一)概念在HTTP协议中,内容协商(ContentNegotiation)是一种机制,它允许服务器根据客户端的请求头信息(如Accept、Accept-Language、Accept-Encoding等),来决定返回给客户端最合适的内容。例如,同一个URL可能对应多种不同格式(如HTML、JSON、XML)、不同语言(如英语、中文)或者不同编码(如gzip压缩、无压缩)的资源,
- Python 阿里云服务器使用SMTP协议和25端口发送邮件报SMTPServerDisconnected(“Connection unexpectedly closed“)错误的解决办法
QMT量化交易
Pythonpython阿里云服务器
1.发送邮件函数:importsmtplibdefsend_mail(trade_date,receivers=None,subject='数据采集完成',content='数据采集完成'):mail_host="smtp.qq.com"mail_user="
[email protected]"mail_pass="XXXXXXXXXXXXXXX"sender='
[email protected]'receive
- AIGC从入门到实战:ChatGPT+Midjourney,绘出中国古风意境之美
杭州大厂Java程序媛
DeepSeekR1&AI人工智能与大数据javapythonjavascriptkotlingolang架构人工智能
AIGC从入门到实战:ChatGPT+Midjourney,绘出中国古风意境之美关键词:AI生成内容(AIGC),ChatGPT,Midjourney,中国古风,创意设计,艺术表达1.背景介绍1.1问题由来人工智能生成内容(ArtificialIntelligenceGeneratedContent,AIGC)作为AI技术的重要分支,近年来在视觉、音乐、文本等多个领域取得了显著进展,引领了内容创作
- 最简单圆形进度条实现CSS+javascript,两端带圆弧
真是6的不行
cssjavascript前端
两端是弧形的圆形进度条。Document/*定义css变量*/:root{--progress:0%;--endRotate:0deg;--contentSize:100px/*这位置改变整体进度条大小*/}/*外圈*/.progress{position:relative;width:var(--contentSize);height:var(--contentSize);/*进度条的颜色处理*
- CSS flex-shrink 属性
shengyin714959
笔记csscss3前端
实例A,B,C设置flex-shrink:1,D,E设置为flex-shrink:2:菜鸟教程(runoob.com)#content{display:flex;width:500px;}#contentdiv{flex-basis:120px;border:3pxsolidrgba(0,0,0,.2);}.box{flex-shrink:1;}.box1{flex-shrink:2;}div总宽
- 令人窒息的性能困局接手公司老旧后台系统时,我震惊地发现:首页加载竟需要12.3秒! Lighthouse报告显示:
console.log 战略储备局局长
面试前端http
PerformanceScore:38FirstContentfulPaint:4.1sTotalBlockingTime:2.8s更糟糕的是WebPageTest的瀑布图:34个请求串行加载,TCP连接反复重建,TLS握手消耗了超过1.9秒...破局关键:HTTP/3三板斧第一斧:QUIC协议斩断队头阻塞不同于HTTP/2的TCP流阻塞,QUIC协议基于UDP实现:单个包丢失不再阻塞其他流,实测
- 商城(技术栈vue+vuecli+vant+axios)
前端阳光
前端vuevue
1.细节配置加粗样式配置Fastclick,在main中引入并使用即可//1.引入fastclickimportFastClickfrom"fastclick";if('addEventListener'indocument){document.addEventListener('DOMContentLoaded',function(){FastClick.attach(document.body
- css动画实现铃铛效果
木心操作
CSScss前端css3
代码*,*::after,*::before{margin:0;padding:0;box-sizing:border-box;}body{width:100%;height:100vh;background-color:#1d1d1d;display:flex;justify-content:center;align-items:center;}.notification{width:200px
- vue+element 实现蛇形时间轴 拐弯时间轴
爱吃火腿的子车鸿轩
vue.jsjavascriptecmascript
公司业务需要做一个如图效果分享给有需要的人有更好的意见欢迎交流核心代码如下{{v.content}}{{v.content}}数据experienceData:[{content:'交换机外带管理'},{content:'交换机CLI界面调试'},{content:'交换机TELNET管理配置'},{content:'交换机生成树配置'},{content:'路由器TELNET管理配置'},{co
- Android中的Content Provider是什么以及它有哪些用途
python资深爱好者
androidoracle数据库
Android中的ContentProvider是一种用于管理应用数据共享的组件。它允许不同应用之间访问和操作数据,通过定义统一的接口,确保数据的安全性和一致性。以下是ContentProvider的详细介绍及其用途:一、ContentProvider概述ContentProvider封装了数据源,并提供了一套标准的接口,允许其他应用以一种统一的方式访问和操作这些数据。它通常用于访问SQLite数
- macOS安装Homebrew官网安装
时光不负追梦人
mac
Homebrew官网http://brew.sh/index_zh-cn.html官网安装Homebrew的安装很简单,mac自带ruby环境,只需在终端下输入如下指令即可完成Homebrew的安装,如果以下链接失效可以去官网看看新的链接:ruby-e"$(curl-fsSLhttps://raw.githubusercontent.com/Homebrew/install/master/inst
- webView的使用以及总结
xjbclz
Android-综合
转自:http://www.360doc.com/content/14/0611/13/15210553_385676271.shtmlWebView(网络视图)能加载显示网页,可以将其视为一个浏览器。它使用了WebKit渲染引擎加载显示网页,实现WebView有以下两种不同的方法:第一种方法的步骤:1.在要Activity中实例化WebView组件:WebViewwebView=newWebVi
- 【理解工具调用的流程,本质体现了大模型智能性】
Ai君臣
大模型调用functioncall
1、工具调用调用完结果看里面tool_calls是否为空,不为空就调用工具函数处理,如果为空就中断循环。大模型返回的message结果智能判断是否继续调用输入输出如下:请输入:深圳西安天气------------------------------------------------------------第1轮大模型输出信息:{'choices':[{'message':{'content':'
- Unity 文字高度自适应
2301_79311694
unity
期望文字有字号限制,输入文字文字后先判断高度是否适用于限制字号,若处于最小字号时高度任不适用,则调整RectTransform的高度。核心代码每次输入文字时先将字号设定为原始字号。comp.fontSize=fontSize;comp.text=content;拓展Text调用自适应脚本里的设定文字方法。publicstaticclassExtensionText{publicstaticvoid
- 爬虫遇到一个标签有两个类名怎么办?
勇敢的牛马
爬虫pythonxhtmlpycharmselenium测试工具css
1.使用CSS选择器:BeautifulSoup的select方法支持使用CSS选择器来定位元素。对于具有多个类名的元素,可以将类名连接起来,并在每个类名前加上一个点(.),表示同时具有这些类的元素。frombs4importBeautifulSoup#假设html_content是包含目标HTML的字符串soup=BeautifulSoup(html_content,'lxml')divs=so
- uniapp清除所有缓存
技术需要沉淀gogo
uniapp微信小程序相关uni-app缓存java
使用场景:退出登录的时候解绑之后清除所有缓存uni.clearStorageSync();uni.showModal({title:"提示",content:"确定要退出登录吗?",success:(res)=>{if(res.confirm){uni.showToast({title:res.Message,icon:"none"})uni.clearStorageSync();uni.reLa
- 解释 HTTP 中的内容协商,如何根据客户端偏好返回合适的内容?
程序员黄同学
前端开发JavaScriptnode.jshttp网络协议网络
一、内容协商的本质与价值内容协商(ContentNegotiation)是HTTP协议中客户端与服务器就资源表现形式达成一致的协商机制。其核心价值在于:用同一URI提供资源的不同表现形式,同时保证客户端获得最适合自身环境的内容版本。典型应用场景:多语言站点自动适配浏览器语言根据设备类型返回移动版/桌面版页面API接口支持JSON/XML等多种数据格式图片资源按客户端支持格式自动转换二、核心协商机制
- Linux系统(以Ubuntu为例)安装高版本nodejs
红衣大叔
javascript帮助文档linuxubuntujavascript
运行以下命令可以下载并执行nvm(NodeVersionManager)的安装脚本。这个命令会从nvm的官方GitHub仓库下载特定版本的安装脚本并执行它,从而在你的系统上安装nvm。详细步骤打开终端:首先,打开你的终端应用程序。运行安装命令:curl-o-https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh|bash-使用
- 当内容超出宽度时实现横向滑动效果
十年 lius
web前端csscsshtml5css3
当内容超出宽度时,可以横向滚动我们经常会遇到内容超过高度时,页面出现滚动条,通过滚动条来继续浏览内容,比如当前页面就是。很简单,设置css属性overflow-y:auto;就可以实现。而如果想要内容不换行,当超过宽度,横向滚动呢,overflow-x:auto;就不能实现了,因为默认会换行。话不多说,直接上代码。{{prizeItem.amount}}.content{padding:020px
- 遇到NotOfficeXmlFileException
flying jiang
异常apache
org.apache.poi.openxml4j.exceptions.NotOfficeXmlFileException:Novalidentriesorcontentsfound,thisisnotavalidOOXML(OfficeOpenXML)file这个异常通常发生在你尝试使用ApachePOI库来读取或处理一个不是有效的OfficeOpenXML文件(如.xlsx或.docx文件)时
- 前端开发中如何使用ChatGPT辅助开发?
破碎的天堂鸟
学习教程chatgpt
以下是前端开发中使用ChatGPT辅助开发的完整指南,涵盖核心应用场景、实践方法及注意事项:一、代码生成与优化基础代码生成HTML/CSS/JS框架搭建:通过自然语言描述需求(如"生成带导航栏的响应式页面"),ChatGPT可快速生成结构清晰的代码骨架。例如,输入“用Flexbox实现垂直水平居中布局”,可得到包含justify-content和align-items属性的代码[1][32]。组件
- 一二和布布和好网页
九月の约定
javascript前端css
效果类似和好神器一二版_哔哩哔哩_bilibili直接上代码宝宝我们和好吧body{display:flex;justify-content:center;align-items:center;height:100vh;margin:0;background-color:#ffe6e6;font-family:"MicrosoftYaHei",sans-serif;}.container{text
- android的广播详解,Android的Service和广播的讲解
任我说车
android的广播详解
前言:我们都知道Android的四大基本组件:Activity、ContentProvider、Service以及BroadcastReceiver,前面的两个我们在前几篇已经具体讲解了,今天这一天我们就把后两者的使用具体说一下,由于Service和BroadcastReceiver常常一起使用,所以我们一起来学习。一.Service的使用Service是Android系统的后台服务组件,没有用户
- 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节点最多