- MySQL进阶:SQL高级技巧 - 窗口函数(Window Function)
墨夶
数据库学习资料1mysqlsqlandroid
MySQL进阶:SQL高级技巧-窗口函数(WindowFunction)❓引言:为什么需要了解窗口函数❓窗口函数(WindowFunction)是SQL标准中的一个高级特性,它允许用户在不改变查询结果集行数的情况下,对每一行执行聚合计算或其他复杂的计算。这些计算是基于当前行与结果集中其他行之间的关系进行的。窗口函数在处理复杂的统计分析问题时非常有用,例如移动平均、累计总和、百分比排名等。本文将深入
- Python学习——装饰器(一):两个简单例子
爬虫俗手小马达
python学习开发语言
例一计时器#创建一个装饰器,用于计算函数执行时间importtimedeftime_this(func):defwrapper(*args,**kwargs):start_time=time.time()result=func(*args,**kwargs)end_time=time.time()execution_time=end_time-start_timeprint(f"Execution
- web前端常见的面试题总结
2401_84436095
程序员前端
script.src=url+‘?’+data+‘callback=’+funcNamedocument.body.appendChild(script);//这里得到请求的数据,在回调函数中执行处理window[funcName]=function(data){callback(data)}}//使用jsonp(‘http:127.0.0.1:3000/api’,{},function(res)
- uniapp 开发 h5 授权微信登录(静默和非静默)
陈龙龙的陈龙龙
uni-appuni-app微信前端htmljavascript
具体流程:进入h5➡️静默登录➡️请求登录接口➡️必要时候调起登录组件➡️点击按钮进行非静默登录➡️再次请求登录接口➡️获取到所有用户数据一、封装登录functionauthLogin:(callback)=>{constthat=this;//判断是否是在微信环境下运行if(utils.isWechat()){consttoken=window.localStorage.getItem('__t
- 微信小程序通用静默获取openid和Session_key
TurboMT
小程序php小程序phpopenid
小程序公共app.js代码//app.jsconstserver=require('./server/server.js');App({onLaunch:function(){//展示本地存储能力varlogs=wx.getStorageSync('logs')||[]logs.unshift(Date.now())wx.setStorageSync('logs',logs)//登录wx.chec
- Go的基础操作
qq_50996930
Go语言学习专栏golang后端
helloworld通过一段简单go代码打印helloworld。packagemainimport("fmt")funcmain(){fmt.Println("Hello,Golang!")}我们来逐行解析一下:packagemain:声明了当前这个go文件所在的包,Go用包来组织代码,一般一个文件夹是一个包,包内可以暴露类型供其他包使用。import(“fmt”):fmt就是go语言的一个标准
- Go语言学习Day1
XXX-17
golang开发语言后端
一、基本1)go基本目录结构goproject/src/gocode/testproject01/main(main下是具体代码)2)打开File/Openfolder(打开基本目录)3)新建源文件test01.go4)编译通过命令提示符窗口到达源文件根目录/然后cdgobuildtest01.go(生成test01.exe)5)执行接着上面的执行test01.exe(生成结果)4)和5)可以合并
- Android Rxjava3 使用场景
2401_89760309
android
Observable>>hotKey=ApiManager.getInstance().getApiService().getHotKey();Observable.just(articleList).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).map(newFunction,Observable>>
- sui框架 点击图片 放大显示
jiidd
$(function(){$.init();$(document).on('click','.albumImgs',function(){varpic=$(this).parent().find(".albumImgs").map(function(){return$(this).data("src");}).get();$.photoBrowser({photos:pic,//注意此处是数组[]
- (14)Chainlink VRF(可验证随机函数)详细介绍
xluo1715
soliditychainlinkVRF区块链DAPPweb3
ChainlinkVRF(VerifiableRandomFunction)是Chainlink提供的一种去中心化随机数生成服务,专为智能合约设计。它通过加密技术生成随机数,并确保随机数的不可预测性和可验证性。以下是ChainlinkVRF的详细介绍,包括其作用、用法、工作原理以及实际应用。1.ChainlinkVRF的作用ChainlinkVRF的主要作用是为智能合约提供可验证的、不可预测的随机
- c语言大一经典题目
知识为甚不进脑
c语言算法开发语言
经典题目一、熟悉编程环境编程题实验01-1:熟悉编程环境,实现基本输出设计在屏幕上输出短句:ProgramminginCisfun!实验01-2:熟悉编程环境,实现基本输出设计在屏幕上输出短句:Whatisacomputer?实验01-3:熟悉编程环境,实现基本输出设计在屏幕上输出一个倒三角形,如下列所示:**********二、格式化输出编程题实验01-4:简单程序设计,格式化输入输出【问题描述
- [前端算法]动态规划
摇光93
算法算法动态规划
最优子结构,重叠子问题爬楼梯递归+记忆化搜索自顶向下varclimbStairs=function(n){letmap=[]functiondfs(n){if(n=coins[j]){dp[i]=Math.min(dp[i],dp[i-coins[j]]+1);}}}if(dp[amount]===Infinity){return-1;}returndp[amount];}01背包问题functi
- 函数尾调用优化
尾调用在编码过程中,经常涉及到函数调用函数,例如:functiona(){b();}functionb(){}我们每次调用函数,都会在在内存中记录一个“调用帧”又成为“栈帧空间”在上述例子中,调用a()函数,会在内存中记录一个调用栈,然后继续调用b()函数,此时在内存中又会记录一个调用帧,等到b()函数运行结束,调用帧a、b的内存才会释放。我们可以利用“尾调用”来释放调用帧内存functiona(
- 火山引擎数据飞轮2.0:聚焦Data+AI,驱动企业数智化转型
大数据
数字化浪潮席卷全球,数据与人工智能的融合正给各行各业带来巨大变革,不仅重塑数据处理流程,更在决策支持、业务优化、产品创新等多个维度上展现巨大的潜力。近期,火山引擎数智平台技术和产品专家受邀出席DataFun首届“数据与人工智能解决方案大会”,围绕数据飞轮2.0模式,及Data+AI领域热门话题ChatBI、多模态数据湖展开分享。据介绍,2023年4月火山引擎发布了数据飞轮,其内核为“以数据消费促资
- Science Robotics最新封面:外骨骼“外挂”让手指弹奏钢琴更灵巧
xwz小王子
多模态变形金刚具身智能强化学习及自动驾驶外骨骼
最近来自日本的研究团队开发了一款专门的手部外骨骼机器人,通过被动训练的方式,帮助专业钢琴家突破了技能天花板。这项研究刚刚登上了机器人领域顶刊ScienceRobotics最新一期的封面。研究团队制作了一个精密的手部外骨骼系统。这个系统可以精确控制手指的弯曲和伸展,让钢琴家体验到比他们主动演奏更快速、更复杂的手指动作。系统的关键在于采用了“远程运动中心”机制,可以在高速重复运动时保持精确性,同时将手
- Go 切片:用法和本质
ん贤
golang开发语言后端
要想更好的了解一个知识点,实战是最好的经历。题目我这里放一道题目:packagemainimport"fmt"funcSliceRise(s[]int){s=append(s,0)fori:=ranges{s[i]++}fmt.Println(s)}funcSlicePrint(){s1:=[]int{1,2}s2:=s1s2=append(s2,3)SliceRise(s1)SliceRise(
- Java8关于Function接口
Acndy233
学习java高级编程开发语言javaFunction接口
Java学习-Function接口1函数式接口简介和学习地址2两种常见的函数式接口2.1Runnable:执行接口,不接收参数,也无返回结果。2.2Consumer:作为消费接口,接收一个参数,无返回结果。3初识3.1定义Function接口3.1.1定义`ThrowExceptionClass`Function`接口`3.1.2定义`BranchHandleDemo`Function`接口`3.
- Java 函数接口BiFunction与BinaryOperator简介与示例【函数式编程】【Stream】
Java编程乐园
函数接口java
Java8引入了一种新的函数式编程风格,Function接口是Java函数式编程中最重要的四个函数式接口之一。函数接口BiFunction,它是Function接口的扩展版本。BinaryOperator也是Java8中引入的一个函数式接口,位于java.util.function包中。它是一个特殊的BiFunction,用于表示接受两个相同类型的参数并返回相同类型结果的操作。该接口定义了一个ap
- java8 Function函数式接口学习
墨笙弘一
JAVAjava8函数式接口Function
/***表示一个函数,它接收一个参数并且返回一个结果。*这是一个函数式接口,它有一个重要的方法是apply(Object)*@param函数的输入类型*@param函数结果的类型*@since1.8*/@FunctionalInterfacepublicinterfaceFunction{/***将该方法应用到指定的参数上*@paramt函数参数*@return返回函数的结果*/Rapply(Tt
- Function.identity()的使用详解
Evan Wang
Javajavalambdastream
一、Function.identity()简单介绍当我们使用Stream时,要将它转换成其他容器或Map。这时候,就会使用到Function.identity()。Streamstream=Stream.of("This","is","a","test");Mapmap=stream.collect(Collectors.toMap(Function.identity(),String::leng
- Java:函数式(Functional)接口
我是小水水啊
Javajava开发语言
文章目录1什么是函数式接口2如何理解函数式接口3举例Java内置函数式接口1之前的函数式接口2四大核心函数式接口3.4.3其它接口内置接口代码演示5练习1什么是函数式接口只包含一个抽象方法(SingleAbstractMethod,简称SAM)的接口,称为函数式接口。当然该接口可以包含其他非抽象方法。你可以通过Lambda表达式来创建该接口的对象。(若Lambda表达式抛出一个受检异常(即:非运行
- Java 函数接口Function详解与示例【函数接口Function】
Java编程乐园
函数接口java
Java8引入了一种新的函数式编程风格,Function接口是Java函数式编程中最重要的四个函数式接口之一。Function函数式接口实现的功能:接受一个输入参数,然后产生一个输出结果。Function接口在java.util.function包中定义,它的源码如下:packagejava.util.function;importjava.util.Objects;@FunctionalInte
- function isBulkReadStatement, file SQLiteDatabaseTracking.cpp
丁乾坤的博客
iOS常见问题Xcode16mysqlios18闪退
一问题:Xcode16.0运行在iPhone16/ios18.0以上发生闪退,闪退在YYCache–>YYKVStorage文件内。以上删除保以下错误:functionisBulkReadStatement,fileSQLiteDatabaseTracking.cpp解决方案:找到YYKVStorage文件中_dbClose方法替换里面的一行代码:-(BOOL)_dbClose{//if(_dbS
- React Hooks 基于 JS 闭包原理实现,但是闭包也会带来很多麻烦
头脑旋风
javascriptreact.js前端reactnative
文章开始之前希望大家支持一下我独立开发的微信小程序“头脑旋风”,或微信扫描我的头像进入,谢谢支持~文章目录1.JS中的闭包2.ReactHooks中的闭包3.过时的闭包4.修复过时闭包的问题5.Hook中过时的闭包总结1.JS中的闭包下面定义了一个工厂函数createIncrement(i),它返回一个increment函数。之后,每次调用increment函数时,内部计数器的值都会增加i。fun
- 【DAY.2】PHP数据结构与算法_排序_冒泡排序
我是妖怪_
天天学习冒泡排序算法php
思路分析:循环逐个对比,从第一个开始,与下一个数字进行对比,若大于则交换位置,每循环一遍将最大的一个排到最后。(依次比较相邻的元素,两两比较,就可以最终将最大(小)的元素调整到最顶端、次顶端、、、)$arr=array(3,2,5,6,1,8,4,9);functionbubble_sort($arr){$len=count($arr);//判断数组是否为空if($len$arr[$i+1]){$
- 指针 Day 02
朝十晚五
c语言算法
1.指针和数组的关系inta[5]={1,2,3,4,5};int*p=NULL;p=&a[0];注:访问数组下标为n的元素的方式为:a[n]==*(a+n)==*(p+n)==p[n]2.数组作为函数参数常用:intfun3(int*parray,intlen)3.字符型数组和字符串的传参练习:封装一个函数传入一个字符串,统计该字符串中大写、小写和空格#include//函数,接收字符串及指向计
- Python二进制模式打开文件open()
牧文山
Pythonpython
我们看到了在文件打开模式中有以下模式:rb、wb……有这种带b的。什么意思呢?就是用二进制的方式打开文件。#1.只读模式打开文件f1=open('d:\\infile.txt')#2.写模式打开文件f2=open('output.txt','w')#3.以二进制写模式打开文件f3=open('record.dat','wb',0)open()函数-modeModeFunctionr以读模式打开w以
- 【AI | python】functools.partial 的作用
苹榆枫
#深度学习框架人工智能python
在代码中,partial是Pythonfunctools模块中的一个方法,用于固定函数的某些参数并返回一个新的函数。这个新的函数可以像原函数一样调用,但固定的参数不需要再次提供。代码中:self.compute_cis=partial(compute_axial_cis,dim=self.internal_dim//self.num_heads,theta=rope_theta)这里partial
- omfun官方版网页版下载-omofun官方版2024安卓IOS下载
omofun5541
omofun动漫omofun动漫ios动画安卓windows
omofun关于“ROOT苹果手机”的说法实际上是一个误解,omofun动漫因为“ROOT”这个术语通常指的是获取Android设备的超级用户权限,omofun漫画而苹果手机(iPhone)使用的是iOS操作系统,获取超级用户权限的过程被称为“越狱”(Jailbreak)。omfun官方版app最新版本版下载:http://om.aunbaidu.com/下面是一篇关于如何越狱苹果手机的文章,介绍
- 用diff 生成patch文件的命令/方法
fcf1990501
LINUX系统
linuxdiff命令diff命令可以比较两个相同文件进而生成patch文件使用如下命令获得命令的帮助didff--help使用以下option-u,-UNUM,--unified[=NUM]outputNUM(default3)linesofunifiedcontext-r,--recursiverecursivelycompareanysubdirectoriesfound-N,--new-f
- 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节点最多