面试题-二叉树

给定一个二叉树,编写一个函数来获取这个树的最大宽度。树的宽度是所有层中的最大宽度。这个二叉树与满二叉树(full binary tree)结构相同,但一些节点为空。 每一层的宽度被定义为两个端点(该层最左和最右的非空节点,两端点间的null节点也计入长度)之间的长度。 示例 1: 输入: 1 / \ 3 2 / \ \ 5 3 9 输出:...阅读全文

Go语言中文网 2020-09-28 21:54:16 lobo

go语言中的for循环

## go语言中的for循环 *假如给你一个字符串让你遍历获取其中的内容,或者查找其中的是否包含某个字符串,你会如何做?* #### 理所当然的我们选择了for循环来进行遍历 在go语言中使用比较多的两个循环一个是**for i**,一个是**for range**,这两者都能够很有效的对一个集合体进行遍历。(string也是一个集合体),下面我们来具体展示一下他们之间的区别 #### for i ```go func main() { str := "Hel...阅读全文

Go语言中文网 2020-09-28 21:38:25 TonoT

GO vs Python哪个更适合做web开发?

GO和python都是当下非常受欢迎的编程语言,因为各具有不同的优势受到了很多人喜欢,现在很多人都想要通过培训来从事web开发,但是面对编程语言选择就十分困扰,该选择python还是GO呢? 在GO与python语言当中,当涉及到用户社区的时候,python是绝对的赢家。python有着丰富的扩展库,更加成熟稳定,具有更多框架,配备了用于web开发的资源。 GO和python语言将自己宣传为面向简单性,尽管它们两个代码都易于阅读和理解,但是GO需要更多代码来执行与python相同的操作。 GO ...阅读全文

51CTO博客 2020-09-28 14:01:01 老男孩IT

for-range造就循环永动机?快来看看go中for-range的那些事!

来自公众号:新世界杂货铺循环永动机Q1: 如果我们在遍历数组的同时修改数组元素,能否得到一个永远都不会停止的循环呢?func main() { arr := []int{1, 2, 3} for _, v := range arr { arr = append(arr, v) } fmt.Println(arr) } // 输出: 1 2 3 1 2 3上述代码的输出意味着循环只遍历了原始切片中的三个元素,我们遍历切片时追加的元素不会增加循环的执行次数, 所以循环最终还是停了下来答: 对于所有的...阅读全文

Segmentfault 2020-10-03 09:32:32 新世界杂货铺

docker入门

1 什么是Linux的容器(LXC--LinuX Container)? 1.1虚拟化与容器的区别 image.png1.2 容器发展之路容器技术最早出现在FreeBSD上叫做 jail,将一个进程放入jail中运行,不管这个进程在其中发生怎样的错误都不会影响到系统上其他进程的运行。 后来,jail技术在Linux中的实现叫做vserver,vserver所实现的功能体现为chroot以及namespaces实现资源的隔离。 容器技术出现的主要目的是为了"资源隔离" image.png Linu...阅读全文

简书 2020-09-28 14:33:09 jed杨

特殊情况下,不同取模操作的效率比较

### 所指代的特殊情况是指 a % b,b 为 2 的 n 次方的情况。 > 额(⊙﹏⊙),作为平时使用的话,完全用不上,在非常巨量的操作下才可能会有差距 - 先拿 10 进制举例,如果 15648615341 % 10,那你肯定立马知道结果是 1,10 变成 100,你也知道结果是 41 - 同样的换成二进制 1110100100101110101110101110101101 % 10 (二进制哦~~),结果是 1(也就表示是奇数),换成 100 结果是 1,1000 ==...阅读全文

Go语言中文网 2020-09-28 11:48:48 lgf133214

一道比较运算符相关的面试题把我虐的体无完肤

来自公#众#号:新世界杂货铺 杂(货铺)谈 今天这篇文章相对来说比较基础,大家花几分钟时间看看,有所收获自然是最好,没有收获也就消磨几分钟时间罢了,你不亏,笔者也不亏~ 前几期还是有一定难度的HTTP系列文章,今天却是画风突变讲起了基础,这当然是因为基础重要呀。正所谓万丈高楼平地起,我们夯实基础,楼才能建的高,毕竟精美的小矮楼总是很容易被高楼遮挡。嗨,扯远了,总之笔者今天写这篇文章绝对不是下面这个原因: 累呀!真的累!工作嘛?当然不是!前几期分析HTTP系列文章确实耗费了太多精力,周末连续熬夜就...阅读全文

简书 2020-09-28 11:33:18 新世界杂货铺

linux安装go环境

第一步、官网下载安装包https://golang.google.cn/go1.4.linux-amd64.tar.gz 第二步、解压缩tar -C /usr/local -xzf go1.4.linux-amd64.tar.gz/usr/local指目录,可自行修改第三步、添加环境变量export PATH=$PATH:/usr/local/go/bin第四步、安装测试其实已经安装好了,接下来测试一下是否安装成功。写一段简单的go程序,输出hello world!吧,保存为test.gopac...阅读全文

简书 2020-09-28 11:33:18 哩白

golang-grpc示例

原文链接 1. 环境配置 go环境配置(略) 1.1 protoc-gen-go cd $GOPATH/src/github.com/golang/ git clone https://github.com/golang/protobuf.git cd protobuf/protoc-gen-go go build #生成protoc-gen-go go install . #or cp protoc-gen-go $GOHOME/bin/ 1.2 protoc-gen-go-grpc cd $...阅读全文

51CTO博客 2020-09-27 16:15:48 Lynn_Yuan

Golang Defer详解

在用Golang开发的时候,defer这个语法也是必备的知识,但是我们除了知道他是在一个函数退出之前执行,对于defer是否还有其他地方需要注意的呢。本文整理的defer的全场景使用情况,部分场景源自网络,加上自己的额外观点和分析,完成了这份defer的7个隐性必备知识点。提纲 知识点1:defer的执行顺序 知识点2: defer与return谁先谁后 知识点3:函数的返回值初始化与defer间接影响 知识点4:有名函数返回值遇见defer情况 知识点5:defer遇见panic 知识点6:d...阅读全文

51CTO博客 2020-09-21 14:06:30 王小酸

GO语言基础学习一------------基本语法与使用

基本语法和使用 程序代码架构 添加程序入口:package main 导入程序所需要的包:import () 定义命令行参数:var mode = flag.Sting (”mode ”,“”,“ process mode ”) 初始化函数:func init(){} 执行函数/入口函数:func main (){} 变量 声明变量 标准格式:var 变量名称 变量类型 如:var a int 整型var b string 字符串var c [) float32 浮点贴片var d func()...阅读全文

51CTO博客 2020-09-24 17:19:03 Insane_linux

go练手:简单的单词格式转换工具

声明​ 代码引自书籍 《Go语言编程之旅:一起用Go做项目》 作者:陈剑煜 徐新华​ 部分代码实现上做了调整,达到了自己想要的效果。功能描述支持5种单词格式转换, 模式如下:1: 全部单词转大写2: 全部单词转小写3: 下划线转大写驼峰4: 下划线转小写驼峰5: 驼峰转下划线举例:TimeForFun 使用模式1 转换为 TIMEFORFUN 使用模式2 转换为 timeforfuntime_for_fun 使用模式3 转换为 TimeForFun 使用模式4 转换为 timeForFunTim...阅读全文

Segmentfault 2020-10-03 08:32:33 孙鹏鹏

Golang标准库——encoding(1)

encoding ascii85 asn1 base32 base64 encoding encoding包定义了供其它包使用的可以将数据在字节水平和文本表示之间转换的接口。encoding/gob、encoding/json、encoding/xml三个包都会检查使用这些接口。因此,只要实现了这些接口一次,就可以在多个包里使用。标准包内建类型time.Time和net.IP都实现了这些接口。接口是成对的,分别产生和还原编码后的数据。 type BinaryMarshaler type Bina...阅读全文

简书 2020-09-27 23:32:41 DevilRoshan

Golang:I/O 操作,千万不要小瞧这些知识点

I/O 操作也叫输入输出操作。其中 I 是指 Input,O 是指 Output,用于读或者写数据的,有些语言中也叫流操作,是指数据通信的通道。 Golang 标准库对 IO 的抽象非常精巧,各个组件可以随意组合,可以作为接口设计的典范。 io 包 io 包中提供 I/O 原始操作的一系列接口。它主要包装了一些已有的实现,如 os 包中的那些,并将这些抽象成为实用性的功能和一些其他相关的接口。 在 io 包中最重要的是两个接口:Reader 和 Writer 接口,首先来介绍这读的操作。 Rea...阅读全文

简书 2020-09-27 23:32:41 金刀大菜牙

Windows10下VScode环境编译运行go语言

1.下载VScode工具(和下载常用软件一样) 官方网址:https://code.visualstudio.com/ a.下载安装完之后可以在vscode中一些插件第一个:Chinese language第二个:GO第三个(推荐):markdown 2.下载安装go开发工具包SDK 官方网址:https://golang.google.cn/dl/ 3.go有一些依赖包在外网上,下载需要进行代理 代理方式网址介绍:https://goproxy.io/zh/添加这两个环境变量添加环境变量方式:...阅读全文

51CTO博客 2020-09-22 17:18:46 梦T醒

还在担心服务挂掉?Sentinel Go 让服务稳如磐石

作者 | 赵奕豪 背景 微服务的稳定性一直是开发者非常关注的话题。随着业务从单体架构向分布式架构演进以及部署方式的变化,服务之间的依赖关系变得越来越复杂,业务系统也面临着巨大的高可用挑战。 在生产环境中大家可能遇到过以下不稳定的情况: 大促时瞬间洪峰流量导致系统超出最大负载,load 飙高,系统崩溃导致用户无法下单; “黑马”热点商品击穿缓存,DB 被打垮,挤占正常流量; 调用端被不稳定第三方服务拖垮,线程池被占满,调用堆积,导致整个调用链路卡死。 这些不稳定的场景可能会导致严重后果,但很多时候...阅读全文

51CTO博客 2020-09-22 14:22:10 阿里巴巴云原生

从JVM中dump出动态代理生成的class

由于动态代理生成的 class 是直接以二进制的方式加载进内存中的,并没有对应的.class 文件生成,所以如果想通过反编译工具查看动态代理生成的代码需要通过特殊的手段来处理。 方案一 设置运行环境变量,运行后会把 class 文件生成在 classpath 目录下 //动态代理时生成class文件 System.getProperties().put("sun.misc.ProxyGenerator.saveGeneratedFiles","true"); 缺点是只适用于 JDK 动态代理 方...阅读全文

简书 2020-09-27 21:32:42 mklee