- qml中StackView的使用
@十三阿哥
qmlqmlqt
main.qml//main.qmlimportQtQuick2.12importQtQuick.Controls2.12importQtQml2.12importQtQuick.Layouts1.12ApplicationWindow{id:windowvisible:truewidth:640height:480header:ToolBar{contentHeight:toolButton.i
- 【QML-容器】
光芒Shine
#Qmlqt
Qt编程指南-VX:hao541022348■容器■ApplicationWindow■Container■Frame■GroupBox■Page■Pane■ScrollView■SplitView■StackView■SwipeView■TabBar■ToolBar■容器可以用容器把这个一组控件给包起来,大部分的容器都是不提供布局功能的,我们需要自己手动去布局.■ApplicationWindo
- 【QML】StackView上层页面半透明,显示下层页面
-凌凌漆-
QMLQtqt
1、应用场景有时候需要模拟弹窗效果,需要下层的页面半透明显示。仅仅将上层页面背景设置为透明并不能实现这个效果,下层的页面依然被覆盖。Qt帮助文档中有如下代码,经测试有效果。2、代码重点标记:下层页面需要设置这个属性StackView.visible:true。设置后有个问题:如果此页面有可点击的组件,被放到下层后依然可以被点击,这不是我们想要的。解决思路是当页面被放入下层后用一个MouseArea
- QML24、常规组件StackView
Qt学视觉
QML前端java数据库
1.简介与示例StackView管理着view页面的生命周期,提供了页面的栈式导航。这些view页面可能有业务需要,根据业务需要,可以一级一级向深处跳转,根据当前view的状态与设定的情况,可能产生一个新view或者返回之前view比如:注册账号分步骤,输入用户名,密码,点击下一步之后,出现新页面,输入兴趣爱好等ApplicationWindow{title:"StckViewDemo"visib
- tableview 刷新某一行,cell出现闪的现象
豆豆阳光啊
1、项目中,tableviewcell采用自适应高度,利用stackview动态改变每一行cell的高度,cell中自定义button,点击可将cell展开和折叠,这时调用了[tableViewreloadRowsAtIndexPaths:@[indexPath]withRowAnimation:UITableViewRowAnimationNone];方法,刷新当前cell的数据,改变高度。ce
- UIStackView之一问一答
新生代农民工No1
前言此篇文章作为在使用UIStackView前的一些答疑,既是扫盲篇,也是实用篇。以下会讲述一些实用的案例,目的就是让更多的人拥抱UIStackView。同时欢迎小伙伴通过评论区讲讲使用StackView遇到的问题。答疑排列视图间距大小不一问:排列视图间距大小不一,可以用UIStackView吗?答:当然可以用,UIStackView虽然有space属性,但是适用于所有的排列视图,如果想要指定某个
- UIStackView文档翻译
Crazy_Init
前段时间有空,回顾一下知识点。就去官网看了一下UIStackView的文档,扫一下知识盲区。以下为翻译:UIStackView一种流式布局,管理横向或者纵向的视图集合。继承于UIView。概述:Stackview让你使用强大的自动布局,创建能够自动适配设备任何方向,大小,和各个屏幕尺寸空间的用户视图。Stackview管理ArrangedSubviews属性中的所有视图布局。这些视图按照Arran
- Qt6 TabView用法
令狐掌门
QML入门教程qml6TabViewqmlTabView
TabView是QML中的一个组件,用于创建带有多个标签页的界面。每个标签页都有自己的内容,并且用户可以点击标签来切换不同的内容视图。不过在Qt6中不在支持TabView,TabBar和StackView来模拟TabView的功能。Qt5TabView以下是Qt5里TabView的基本用法:importQtQuick2.15importQtQuick.Controls2.15Application
- 2018-06-25 Android StackView用法
王培921223
效果图代码首先我们看布局文件布局文件很简单,主要就是使用了一个StackView,这里我们给它加了一个属性loopViews为true,表示可以循环滑动。Java代码publicclassMainActivityextendsAppCompatActivity{privateStackViewstackView;privateint[]imageIds={R.drawable.ym1,R.draw
- c语言源代码闪烁的红五星,iOS 9: UIStackView入门
阿里服务小 AI
c语言源代码闪烁的红五星
同iOS以往每个迭代一样,iOS9带来了很多新特性。UIKit框架每个版本都在改变,而在iOS9比较特别的是UIStackView,它将从根本上改变开发者在iOS上创建用户界面的方式。本文将带你学习怎样使用UIStackView创建用户界面。本文假定你已经熟悉AutoLayout基础。不熟悉的可以先看看AutoLayout教程。要理解StackView为何如此有用及它是如何起作用的,需要首先对Au
- UIStackView入门使用两个问题
hherima
ios
项目中横向一排元素,竖向一排元素,可以使用UIStackView。UIStackView的原理不做介绍,这里主要讲两个初次使用容易出现的两个问题。首先创建一个stackview-(UIStackView*)titleStackView{if(_titleStackView==nil){_titleStackView=[UIStackViewnew];_titleStackView.spacing=
- RxDataSource创建UITableView - I
醉看红尘这场梦
我们继续完成App的后半部分,基于RxDatasource,用reactive的方式处理UITableView。准备工作为了方便演示,基于上个视频完成的例子,我们做了一些额外的准备工作首先,我们给UITableView添加了一个Cell,在这个Cell里:image我们用一个UILabel和一个UITextView构成了一个垂直布局的StackView,表示项目的名字和描述;用一个UIImageV
- iOS开发Swift-6-深色模式,类与对象,MVC模式,弹出框,闭包-趣味问答App
临易i
iosswiftmvc开发语言
1.创建趣味问答App项目2.创建一个问题文本,水平居中约束。创建蓝、红两个按钮,放入StackView中,给StackView水平居中约束,下边约束,设置两按钮间距为20.设置进度条view与safeView关系为equalwidth。设置他们的比例为1:13.3.为系统增加深色模式适配(仅限iOS13以上版本)为Assets中新增新的颜色配置。分别为浅色和深色设置颜色。选中所有文字,设置为名叫
- Flutter实现StackView
许天成
DartflutterflutterDart
1.让界面之间可以嵌套且执行动画。2.界面的添加遵循先进后出原则。3.需要使用AnimateView,请看我上一篇博客。演示:代码:Stack:import'package:flutter/cupertino.dart';///栈,先进后出classKqWidgetStack{finalList_stack=[];///入栈push(Widgetobj){_stack.add(obj);}///出
- 纯代码布局,也可以一样的简洁
新生代农民工No1
前言在前两篇文章讲述了UIStackView布局思想,使用方法以及一些实用的案例,在案例中使用xib结合UIStackView,缺少一些对纯代码的补充,这篇文章,我们主要聊聊如何使用StackView来写纯代码布局。使用UIStackView来简化iOS的界面布局UIStackView之一问一答即便说过很多StackView的好,但是还是很多人认为复杂的页面用不上,其实真正理解了StackView
- dispatch_assert_queue_fail
_菩提本无树_
最近开发遇到了APP莫名的闪退的问题,后来查阅stackview文献得出结论是系统线程导致的在此记录一下事件经过在日历中添加事件的回调中更新UI事件,未声明在主线程操作,导致莫名闪退解决方案使用DispatchQueue.main.async{}更新UI结果不再闪退源码leteventStore=EKEventStore.init()eventStore.requestAccess(to:.eve
- iOS XIB Autolayout进阶—等比例缩放
Auditore
前言:写简单页面,却不会使用Autolayout,还得手动去用代码修改约束的话,那真的很影响效率.本文要介绍如何用xib的Autolayout进行等比例缩放,阅读本文需要一定的xib绘制基础.1.StackView用stackview来做那是相当的方便快捷,stackview顾名思义就是为了处理多个view堆叠的.具体操作就不讲了,篇幅有限,推荐参考https://www.jianshu.com/
- Qt Quick - 导航控件综述
太阳风暴
#▶QML笔记导航控件导航qquickqt5qt
QtQuick-导航控件综述一、概述二、StackView控件三、SwipeView控件四、TabBar控件五、TabButton控件一、概述QtQuickControls提供了一系列导航模型。控件功能Drawer可以用滑动手势打开和关闭的侧滑动面板StackView提供基于堆栈的导航模型SwipeView允许用户通过横向滑动来导航页面TabBar允许用户在不同的视图或子任务之间切换TabButt
- Qt Quick - StackView
太阳风暴
#▶QML笔记StackViewqquickqmlqt5
StackView使用总结一、概述二、在应用中使用StackView三、基本的导航1.pushItem2.popItem3.replaceItem四、深度链接五、寻找Item六、转换六、Item的所有权七、大小一、概述StackView可以与一组相互链接的信息页面一起使用。例如,电子邮件应用程序具有单独的视图,以列出最新的电子邮件,查看特定的电子邮件和列表/查看附件。当用户打开电子邮件时,电子邮件
- QML控件类型:StackView
友善啊,朋友
#QML控件类型qt
一、描述StackView提供栈式导航。它的特点是用类似于栈的方式管理一系列界面,这些界面之间可能有内在联系,根据业务需要,可以一级一级向前面跳转或返回后面的界面。importQtQuickimportQtQuick.ControlsApplicationWindow{title:qsTr("HelloWorld")width:640height:480visible:trueStackView{
- 8.QML Qt Quick Controls 2中常用的界面形式——堆叠式界面(StackView)
Master Cui
Qmlqmlqt
堆叠式界面的实现的核心组件就是StackView。StackView是一个基于栈的导航浏览模型,可以与一组关联的页面一起使用。当用户浏览深层页面时,深层页面被推到栈顶,当用户选择返回时,之前浏览的页面会再次弹出。堆叠式界面的效果上述演示中,界面一共有四个:分别是home、profile、about和editprofile上述四个界面中使用的核心组件是Page,该组件在QtQuick.Control
- iOS | Interface Builder | 一些使用技巧
夏浩文
ScrollView篇ContentSize与屏幕等比添加UIView[或StackView]做ContentView添加ContentView设置滚动方向设置横向滑动设置宽度3.1.control+右键拖向控制器的View拖出选项3.2.选择EqualWidths,若竖向可选择Heights与屏幕等宽3.3.设置Multiplier为合适的比例设置比例3.4.可见contentSize已设置完成
- iox Xcode12 登录界面实现
龚达耶
上一章已经实现了helloworld传送门这一章我们实现登录界面storyboard实现静态页面点击storyboard点击加号创建4个button作为我们四种不同登录方式image.png按住shift选中四个button点击右下方选择StackView为什要用StackView呢因为我们可以用它创建多个水平或垂直的subview更方便我们排版image.png这时我们来排一下版,选中Stack
- iOS - UIStackView的使用
Longshihua
UIStackView在iOS9中苹果在UIKit框架中引入了一个新的视图类UIStackView。UIStackView类提供了一个高效的接口用于平铺一行或一列的视图组合。stackView视图管理着所有在它的arrangedSubviews属性中的视图的布局。这些视图根据它们在arrangedSubviews数组中的顺序沿着stackView视图的轴向排列。并可以根据当前屏幕大小和方向的变化动
- iOS9 新增UIStackView,一款轻量级的单行/列视图组合
a4a7cd7be20f
一、继承关系源码:NS_CLASS_AVAILABLE_IOS(9_0)@interfaceUIStackView:UIView继承与UIView,iOS9.0之后可以使用(项目如果最低适配ios8.0,可以通过自定义UIView实现该功能)常用的创建方式:UIStackView*stackView=[[UIStackViewalloc]initWithFrame:CGRectMake(0,64,
- Auto Layout中Stack View的使用
pro648
这是关于自动布局的第二篇文章。EmbedIn>StackView插入堆栈视图,与点击EmbedInStack插入没有区别。1.创建demo这里使用TabbedApplication的模板创建demo,ProductName为StackView,选择文件位置,创建工程。下面通过三个示例来学习StackView。2.示例1打开刚创建demo的Main.storyboard,在FirstScene添加以
- 从零开始的iOS开发: 20 | 计算器APP
易水卷长空
从零开始的iOS开发iosxcodeswift
目录一、开发环境二、基础知识1.往期知识点2.简易自动布局——StackView三、实验步骤1.先在Xcode建立一个APP项目2.界面搭建3.连接控件与代码4.补充代码,完善功能一、开发环境开发工具:Xcode12.2(集成开发平台)、Simulator(模拟器,Xcode自带)开发语言:Swift5界面搭建:Storyboard(故事板)二、基础知识1.往期知识点00|Swift基础语法(上)
- Android--- UI组件AdapterView and 适配器Adapter
马达加斯加D
安卓Androidandroidjava
Android---AdapterViewandAdapter适配器--AdapterUI控件--AdapterViewListView简单的ListView实现图文ListView实现ListView的监听函数GridViewSpinnerAdapterViewFlipper和StackView适配器–AdapterAdapter是UI控件和实际数据之间的桥梁,通过adapter将数据展示到UI
- 浅谈stackView布局的使用
元宝是只小肥猫
使用场景UIStackView是iOS9新增的一个布局技术。stackView可以做一些相对简单并且有规律的布局:image.pngUIStackView的基础使用1、先拖stackView,可以看到有垂直和水平分布两种样式:image.png2、拖一个竖直的样式,然后再向里面拖动3个view:image.png3、为stackView添加约束后,发现仍然报约束错误:image.pngimage.
- UIStackView
杯中怎可无酒
因为之前项目支持最低版本是iOS8,所以没考虑使用stackView,有类似的场景也都使用tableView或collectionView解决了,现在项目最低支持iOS9+,再加上最近要封装一个组件,所以有些场景使用这个stackView更便捷一些。这个类是干嘛的?别着急,往下看,看完了还不明白是干嘛的,电话联系!!!目前UIStackView只支持在大于等于iOS9+的系统上使用,如果想要在iO
- 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节点最多