- 团队git操作流程
开心点啦.
git
项目的开发要求项目组厉员每天代码提交不少于20次企业项目开发代码的每天的提交一般提交3-5次代码仓库的管理git的基础操作流程命令模式gitpush插件模式vscodegitgraphGUI软件管理模式sourcetreegit在项目团队化开发中的应用master(一般是不动的)dev(主要是拿来代码合并的,其实相当于的是一个桥梁,中转站)xxx1、xxx2、xxx3(主要是拿来工作的,每个人只能
- 【VS Code插件开发】自定义指令实现 git 命令 (九)
不叫猫先生
VSCode插件开发极速入门gitvscode插件自定义指令
我们通常会通过小乌龟、SourceTree、终端等实现git的相关操作,VSCode开发工具也提供了git相关的操作,那么在VSCode中如何通过自定义命令实现git的相关操作?本文主要介绍了gitclone、gitadd、gitcommit、gitpush等命令的实现。创建终端异步函数声明:asyncfunctionexecuteGitCommand(command,options)
- Git&GitLAB&SourceTree企业级应用实战
小杨同学THY
gitgitlab
20231204181129.png第一章Git版本控制系统1、Git介绍Git是一种分布式版本控制系统,广泛应用于软件开发和版本管理中。它于2005年由LinusTorvalds创建,旨在管理Linux内核开发。Git的设计目标是速度、数据完整性和支持分布式、非线性工作流程。版本控制系统用于记录文件和代码的修改历史,并允许多人协同开发。Git通过跟踪文件的变化,记录每次修改的详细信息,并将这些修
- Expected ‘===‘ and instead saw ‘==‘ (eqeqeq)
LiuKouvu
typescriptvue.jsjavascriptnode.js前端
用sourceTree提交VUE代码Expected‘=’andinsteadsaw'’(eqeqeq)at…vara=1;varb='1';if(a==b){console.log("true");}else{console.log("false");}结果:true-----------------------------------------------------------------
- Git可视化工具--Sourcetree安装过程及配置SSH密钥
San Sorray
gitssh可视化
安装过程下载Sourcetree软件sourceTree官网:https://www.sourcetreeapp.com/腾讯软件中心下载地址:https://pc.qq.com/detail/17/detail_23237.html安装过程点击安装文件之后,Sourcetree就安装好了,剩下的过程主要是注册的相关过程。这里我试了试网上能搜到的跳过注册过程的教程,皆以失败告终,so,只好搭梯,三
- 【Bug经验分享】SourceTree用户设置必须被修复/SSH 主机密钥未缓存(踩坑)
来一杯龙舌兰
BUG经验分享ssh缓存运维sourcetree主机密钥未缓存
文章目录配置错误问题原因配置错误问题解决主机密钥缓存问题原因主机密钥缓存问题解决更多相关内容可查看配置错误问题原因电脑太卡,曾多次强制关机,在关机前没有关闭SourceTree,导致配置错误等问题配置错误问题解决方式一:重置配置,自动修复(如果项目不多可选择这种方式,避免更多的麻烦)方式二:手动修复(适用项目多,不想重新搞的)找到sourcetree缓存所在的对应路径:...\AppData\Lo
- GitHub实用手册
AkanthaWang
Python开发实践github
文章目录一、GitHub的定义二、GitHub的主要功能三、GitHub的优势四、GitHub的使用相关工具GitSourcetreeGithub-Desktop一、GitHub的定义GitHub是一个基于Git的分布式版本控制系统,它允许开发者在本地和远程仓库中管理代码版本,支持多人协作开发项目,并提供了一系列工具和功能来简化开发流程。二、GitHub的主要功能代码托管开发者可以将自己的代码存储
- SourceTree安装与使用
缘来的精彩
sourceTreegit
一、简介:一个用于Windows和Mac的免费Git客户端。Sourcetree简化了如何与Git存储库进行交互,这样您就可以集中精力编写代码。通过Sourcetree的简单GitGUI可视化和管理存储库。官网下载地址:Sourcetree|FreeGitGUIforMacandWindowsSourceTree下载-SourceTree最新版下载V3.4.22-阔思亮本文介绍的版本为source
- sourcetree &gitlab
wtdjy
gitlab
1.首先需要安装sourcetreeSourcetree|FreeGitGUIforMacandWindows和gitGit详细安装教程(详解Git安装过程的每一个步骤)_git安装-CSDN博客2.gitlab创建好相应的项目3.打开sourcetree文件→克隆/新建如果是clonewithHTTPs,将连接之间复制到原路径/URL处即可,选择本地目标路径,点击克隆如果是clonewithSS
- 海光处理器与AMD Zen1的指令差异
三水问海
国产处理器信创海光国产CPU
通过lscpu拿到cpuflags字段,可以对比指令之间的差异。Cpuflags的定义,可以参考Linux内核的头文件:cpufeatures.h«asm«include«x86«arch-kernel/git/torvalds/linux.git-Linuxkernelsourcetree根据下表的对比,可以发现Hygon基于AMDZen1,在加解密、安全防护、性能加速等方面是有指令缺失的。海光
- 使用Sourcetree推送本地仓库至远程仓库时报错The host key is not cached for this server
月光有害
githubgit
原因是SSH没配置好点击工具→选项→改成OpenSSH,密钥改成配置Git和本地仓库时生成的.ssh文件夹下的id_rsa文件。
- 工具知识 | Linux 常用命令参考手册
TrustZone_Hcoco
工具技能知识点学习linux运维服务器
目录文件查看文件内容headtailcatnlmore创建touchmkdirmktemp删除rmrmdir查找文件findlocatelspwdwcchattrpastestatgrepsedcdcpmvopensourcetreelnfilesortuniqsplitvim系统管理nohupwatchpingwhichshutdownrebootuptimecrontabatunameifco
- 将一个分支的某个修改点同步到另一个分支( cherry-pick)
骑马纵天下
例:把feature_V3.1.4模拟练习分支最近一次修改点同步到feature_V3.4.0江苏分支1.查找commit号方法一:通过终端,先cd到项目目录下,使用gitlog查找要提交节点的commit查到后用ctrl+z退出imageimage方法二:如果使用的git管理器是SourceTree选中提交的节点后在界面下面会显示commitimage2.切换到目标分支用cherry-pick提
- 【git 使用】超级好用的 git reset 和 git revert 功能对比和使用方法
我有一棵树
git
首先你要知道git区分暂存区和工作区,如果你用过sourcetree你就会知道gitreset超级好用gitreset命令用于将当前分支的HEAD指针移动到指定的提交,并且可以选择性地修改工作区和暂存区的状态。gitreset命令有几种常用的用法,主要包括:gitreset--soft:被reset的提交会放到暂存区,暂存区原来的内容不会变化,同时不影响工作区;这个选项通常用于撤销之前的提交,但保
- 本地代码上传至github的两种方法
kiligsmile
杂记gitgithub
持续更新中加个关注,后续上新不错过~目录方法一:使用sourcetree1.在github网站上新建一个仓库2.复制这个仓库的https地址3.新建一个空的文件夹,打开sourcetree,选择新建/从URL克隆4.点击提交,添加注释常见问题:解决方法方法二:命令行上传代码1.在github上,建立自己的仓库2.在待上传的代码文件下,运行gitinit3.将文件夹下的所有文件添加到仓库中gitad
- diff 工具环境搭建
cdz620
环境搭建安装BeyondCompare将bcmp软连接到/usr/local/bin,命令行可以调用:ln-s/Applications/Beyond\Compare.app/Contents/MacOS/bcomp/usr/local/bin打开sourcetree--》preference--》difftab--》设置如下参数1:$LOCAL$REMOTE参数2:$LOCAL$REMOTE$B
- SourceTree破解
会九卦的兔子
找到目录:C:\Users\用户\AppData\Local\Atlassian\SourceTree新建accounts.json文件里面输入[{"$id":"1","$type":"SourceTree.Api.Host.Identity.Model.IdentityAccount,SourceTree.Api.Host.Identity","Authenticate":true,"HostI
- 版本控制工具——Git
feifei_cloud
unityunity学习笔记git版本控制githubgiteesourcetreeunity笔记
版本控制工具——Git前言一、版本库二、git的工作区域和文件状态三、添加和提交文件四、回退版本:gitreset--模式版本号五、查看差异:gitdiff六、从版本库中删除文件七、.gitignore:git中的特殊文件八、Git、GitHub跟Sourcetree的关系九、Github基础使用十、关联本地仓库和远程仓库十一、分支简介十二、解决冲突十三、rebase和回退十四、分支管理和工作流模
- git命令
明长歌
git
SourceTree用多了,git命令都不会了吧。其实,从编写代码开始就接触SourceTree了,git命令从来都不会。下面是总结了一些git命令,等啥时候,在好奇啥啥是啥的时候,可以看看。这篇文章会不定时更新一下的,毕竟好奇心这种东西管不住也就算了,下次实验前可以多看看总结,加深下记忆,不要简单的问题重复的提起。当然,项目开发中,命令多多用起来才是王道。查看状态:(2个更新文件)gitstat
- SourceTree--破解(二)
无剑_君
一、SourceTree使用破解:找到目录:C:\Users\用户\AppData\Local\Atlassian\SourceTree新建accounts.json文件里面输入:[{"$id":"1","$type":"SourceTree.Api.Host.Identity.Model.IdentityAccount,SourceTree.Api.Host.Identity","Authent
- SourceTree超前n个版本,落后m个版本
Xanchain
在使用SourceTree时,由于网络或者操作错误的原因,经常遇到标题中的情况。在此记录下解决方法打开SourceTree点击右上角终端输入gitreset—softHEAD^撤销最近一次提交gitreset—softHEAD~n撤销最近n次的提交
- git的cherry-pick,使用SourceTree遴选
蒲公英没有糖
gitjavascript开发语言
需求:目前有一个开发分支dev,然后要在dev分支的基础上,检出两个新的分支,做为发版分支,这个分支的功能完全一样,只有logo,title,项目的配置信息不同。怎么在dev分支上开发了新的功能之后,合并到这两个发版分支,并不覆盖这两个分支中的项目配置信息。步骤过程如下:首先新建了一个git仓库添加文件a.jsconsole.log('a');提交记录:添加a文件在该提交记录的基础上检出新分支【d
- git跨项目遴选、cherry-pick,一种简单的方式
不见来去
gitgitjavasourcetree
由来最近做项目出现一个需求,就是需要将本项目的提交,给迁移到另一个相似的项目里去。按理来说如果是相同的项目不同分支之间,那相比大家都懂直接cherry-pick一下就好了。但是跨项目的话,就有点难到我了。到网上去找了找,发现没有太多相关的信息,而且大部分和我预期不符合,后来找打一种方法,特此记录分享一下。解决方法要向跨项目进行cherry-pick,首先我们需要一个工具的辅助。sourcetree
- SourceTree-如何只合并某次提交到当前分支
ruizuo007
在SourceTree中找到需要提交的分支在显示提交信息中,选择所有分支,这样子就会出现所有分支的修改信息。找到需要合并的某次修改信息,点击右键会出现弹框步骤1、2、3选择遴选步骤4点击确定按钮步骤5会看到这个分支下面刚才选中的某次修改内容,点击推送提交即可。这样子就完成只对某次或者不连续修改内容的提交。cherry-pick命令选项使用该命令可以将任意的commit通过其commit号将其合并到
- 日志报错 git -c dif.mnemonicprefix=false -c core.guotepath=false 解决方法
秃头馒头
前端uni-appjavascriptvue.js开发语言
前言:在进行下面操作前,必须确保,你是否安装了Git。查看Git在命令行窗口中输入`git--version`:如果这个命令成功显示了Git的版本信息,这表明Git已经被安装。1.使用SourcetreeSourceTree是Windows和MacOSX下免费的Git和Hg客户端,拥有可视化界面,容易上手操作。同时它也是Mercurial和Subversion版本控制系统工具。支持创建、提交、cl
- sourcetree跳过注册的方法
咸鱼plus
找到C:Users\Administrator\AppData\Local\Atlassian\SourceTree\目录,把accounts.json文件复制进去accounts.json内容如下:[{"$id":"1","$type":"SourceTree.Api.Host.Identity.Model.IdentityAccount,SourceTree.Api.Host.Identity
- 几款常用的Git图形化工具
天富儿
Gitgit
几款常用的Git图形化工具独立客户端工具GitHubforDesktopSourceTreeTortoiseGitIDE集成的Git客户端XcodeEclipse–EgitVisualStudio–GitIntegration&GitHubExtensionVisualStudioCode原文链接作为一名开发人员,你不可能不知道git,无论你是开发自己的开源项目还是和团队一起进行大规模产品的开发,
- git修改密码后mac使用sourceTree出现Authentication failed错误
红枫1225
git
1、退出sourceTree2、在钥匙串中删除git对应站点AccessKey3、执行命令:gitconfig--system--unsetcredential.helper4、重新启动sourceTree,这时会弹出输入密码框,重新输入密码即可
- SourceTree无法启动,打开闪退
亚奇洛贝_001
git
日志里报错如下:ERROR[2023-06-3009:12:55,607][1][Sourcetree.Composition.VSMef.Net48.VSMefCompositionManager][Log]-UnabletoloadMEFcomponentsSystem.InvalidOperationException:序列不包含任何元素在System.Linq.Enumerable.Fir
- 公司Git远程仓库更改后本地代码如何提交到新的仓库上
Neal_f
第一步:先更改仓库origin地址1.使用sourceTree直接修改仓库->仓库设置->远程仓库->更改仓库地址2.通过命令直接修改远程地址gitremoteset-urlorigin[url]例如:gitremoteset-urloriginxxx.git3.通过命令先删除再添加远程仓库gitremotermorigingitremoteaddorigin[url]4.直接修改配置文件进入项目
- 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节点最多