LeetCode - 无重复字符的最长子串 - Golang

题目:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 `"abc",所以其`长度为 3。 示例 2: 输入: "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 `"b"`,所以其长度为 1。 示例 3: 输入: "pwwkew" 输出: 3 解释: 因为无重复字符的最长子串是 `"wke"`,所以其长度为 3。 请注意,你的答案必须是 **子串** 的长度,`"pwke"` 是...阅读全文

Segmentfault 2020-02-16 09:32:32 邹友

插入排序的Golang 实现

再次研究了插入排序的概念:定义一个有序的数据序列a,将待排序的序列b中的数依次插入到a的合适位置,插入后仍然有序总结其与冒泡、选择的区别在于,内部迭代的次数是逐渐增大的,二后两者随着排序进行迭代次数逐渐减少尝试基于Go的实现: func insertSort(arr []int) { l := len(arr) for i := 1; i < l; i++ { for v := 0; v < i; v++ { if arr[v] > arr[i] { arr[v], arr[i] = arr[i...阅读全文

Segmentfault 2020-02-16 09:32:32 邹友

Go 字符串格式化

原文地址:https://www.kancloud.cn/itfanr/go-by-example/81647 Go对字符串格式化提供了良好的支持。下面我们看些常用的字符串格式化的例子。 package main import "fmt" import "os" type point struct { x, y int } func main() { // Go提供了几种打印格式,用来格式化一般的Go值,例如 // 下面的%v打印了一个point结构体的对象的值 p := point{1, 2}...阅读全文

51CTO博客 2020-02-12 12:00:52 1350368559

图解kubernetes容器探活机制核心实现状态管理

k8s为实现容器探活worker的管理构建了一个Manager组件,该组件负责底层探活worker的管理,并且缓存当前的容器的状态,并对外同步容器的当前状态,今天我们就来分析下其部分核心组件 1. 核心原理实现 Manager缓存的状态主要是会被kubelet、状态组件消费,并且在Pod同步状态的时候,会通过当前Manager里面的探测状态来更新Pod的容器的就绪与启动状态的更新,让我们一起看看Manager自身的一些关键实现吧 2. 探活结果管理 即prober/results/results...阅读全文

掘金 2020年02月12日 8小时_2020

调度系统设计精要

作者 | Draveness 导读:本文作者写这篇文章前前后后大概 2 个月的时间,全文大概 2w 字,建议收藏后阅读或者通过电脑阅读。 调度是一个非常广泛的概念,很多领域都会使用调度这个术语,在计算机科学中,调度就是一种将任务(Work)分配给资源的方法。任务可能是虚拟的计算任务,例如线程、进程或者数据流,这些任务会被调度到硬件资源上执行,例如:处理器 CPU 等设备。 图 1 - 调度系统设计精要 本文会介绍调度系统的常见场景以及设计过程中的一些关键问题,调度器的设计最终都会归结到一个问题上...阅读全文

Segmentfault 2020-02-16 08:32:34 阿里巴巴云原生

golang快速入门[2.2]-go语言开发环境配置-macOS

macos安装Go语言开发包 配置go语言的开发环境的第一步是要在go官网下载页面下载开发包 macOS需要下载pkg后缀文件 macOS和iOS操作系统Apple软件包使用.pkg扩展名,在内部使用Xar格式 image Mac OS 的Go语言开发包是 .pkg 格式的,双击我们下载的安装包即可开始安装,一路点击“继续”即可。 image 安装包会默认安装在 /usr/local 目录下,如下所示。 image 这个目录的结构遵守 GOPATH 规则,后面的章节会提到这个概念。目录中各个文件...阅读全文

简书 2020-02-12 07:33:00 唯识相链2

golang快速入门[2.3]-go语言开发环境配置-linux

linux安装Go语言开发包 默认读者会使用linux的基本操作 配置go语言的开发环境的第一步是要在go官网下载页面下载开发包 linux需要下载tar.gz压缩文件 image 这里我们下载的是 64 位的开发包,如果读者的电脑是 32 位系统或者有特殊的需求,则需要下载 32 位的开发包 在上图所示页面中向下滚动即可找到 32 位开发包的下载地址,如下图所示 image 注意,如果在ubuntu这样有图形化界面的linux操作系统,我们可以直接下载 没有图形化界面时,我们需要在命令行中操作...阅读全文

简书 2020-02-12 07:32:58 唯识相链2

golang快速入门[3]-go语言helloworld

golang快速入门[3]-go语言helloworld 在之前,我们介绍了如何在windows、macos以及linux平台构建go语言的开发环境 golang快速入门[2.1]-go语言开发环境配置-windows golang快速入门[2.2]-go语言开发环境配置-macOS golang快速入门[2.3]-go语言开发环境配置-linux 本文将介绍如何书写、编译、并运行第一个go语言程序 同时详细介绍其内部机制 书写第一个go语言程序 首先我们可以在任意位置新建一个文件,命名为mai...阅读全文

简书 2020-02-12 07:32:58 唯识相链2

golang-raft算法理论与实践

前言 我计划写raft的一系列文章,包含从理论到代码实践,此文章依托于MIT的研究生课程。 背景 raft 是一种分布式的共识算法,其目的是要实现多个节点集群的容错性,一致性从而能够构建大规模的软件系统。 在raft之前,比较有名的是Paxos。但是paxos难于理解。 raft的诞生是为了让共识算法更容易理解,在工程上更容易实现。 和其他的共识算法不同的是,raft具有下面的特点: leader:raft中会有一个领导者具有超级权限,可以把自己的log 复制到其他节点中。 leader ele...阅读全文

简书 2020-02-12 07:32:56 唯识相链2

golang基本用法速查

Hello World! package main import "fmt" func main() { fmt.Println("Hello World!") } 引入模块 引入内置模块 //单个引入 import "fmt" //引入多少个 import ( "fmt" "os" ) 引入第三方模块 规则: 默认从 GOPATH 下 src 目录开始找 import 的路径到目录终止, 不会到文件, 每个目录就是一个模块, 一般最终目录名即模块名 默认的模块名由 go 文件首行 packag...阅读全文

简书 2020-02-12 07:32:56 supertab

leetcode_1042

Golang: 思路:看似简单实则不简单的简单题,首先,这是个图问题,个人的思路是,先形成邻接表,然后对表里的每一个点依次进行赋值,怎么赋值呢?拿到表里的点,看一下与它构成边的那些点是否被赋值了,被赋值了,就考虑下还能给这个点哪些值,然后赋值该点 代码如下: func gardenNoAdj(N int, paths [][]int) []int { if N==0 { return nil } //先遍历整个paths //还是需要一个长度为N+1的数组 //存在没有出现在path中的点,即单...阅读全文

简书 2020-02-12 07:32:55 淳属虚构

Beego 公共方法返回JSON

容我废话一会,懒得看直接看正文 最近没事想写个blog学习一下go,发现了beego这个框架真的非常像PHP中的thinkphp框架,上手很简单的样子,于是简单看了看文档介绍什么的就开始写了,后台用vue-admin-template,然后beego写api,平时写原生PHP习惯了,都会封装公共方法Error()/Success() 什么的返回json,突然发现beego文档里只写了控制器返回json,而且比较麻烦 this.Data["json"] = json this.ServeJSON(...阅读全文

简书 2020-02-12 07:32:55 Mr_dreamer

Golang 包和依赖管理

前言:这篇简单整理了一下golang的包管理相关内容。 一、package package是基本复用模块单元。 注:以首字母大小写来区分是否可被包外代码访问。 大写代表,可以被包外引入。 小写代表,不可被包外引入。 package名可以与目录名不一致。(但建议一致) 同一目录下的Go文件,必须属于同一个package。 PS:在终端下,输入go env,可获得go的环境信息。 操作步骤: 第一步:我们要配置GoPath。将我们的工程路径写入GoPath内。 打开终端并输入: vim ~/.bas...阅读全文

简书 2020-02-12 07:32:55 奇舞647

总结2019常用书单网站

# 总结2019,展望2020新的一年,新的目标,2019定的那些目标是不是都已经实现,2020是否已经指定了新的目标。2019年在手机上花费了大量的时间和金钱。全家人的手机,大概算了一下,能花了有小一万了。你花在手机上的时间越多越可能觉得自己像个文盲当我们看到夕阳西下我们想到的是:“卧槽!好多鸟!”“艾玛,真好看!” 我们早已忘记了:“落霞与孤鹜齐飞,秋水共长天一色”看见一轮明月,我们想到的是“卧槽真尼玛圆。”而不是“但愿人长久,千里共婵娟”,跟心仪对象聊天,吹不出文艺有趣彩虹屁看到稍带点文化...阅读全文

简书 2020-02-12 07:32:54 思考让人长寿

golang 依赖管理之 mod

go 很早就考虑了依赖管理的问题,内置 go get 命令,可以直接获取对应的依赖,非常方便,但是有一个巨大的缺陷,没有版本的维护和管理,而版本不一致可能会导致各种兼容性问题,因此出现了很多第三方依赖管理工具,dep 和 glide 就是其中的佼佼者,到了 go 1.11 官方终于推出了自己的依赖管理工具 mod,并内置在 go 版本中,go mod 使用简单,功能强大,并且能自动兼容大多数之前的第三方工具,大量优秀的开源库都已经切换到了 go mod,大有一统江湖之势。 go视频 GO111M...阅读全文

51CTO博客 2020-02-11 16:17:28 xjtuhit

【译】Go语言之父带你重新认识字符串、字节、rune和字符

以下文章翻译自罗伯·派克发表在Go Blog的文章,文章中为读者详述了Go语言中字符串与我们经常提起的字节、字符还有rune的关系和相互之间的不同。正如派克在文中所说 字符串这个话题对于一篇博客文章来说似乎太简单了,但是要很好地使用它们,不仅需要了解它们的工作原理,还需要了解字节,字符和 rune 的区别,以及 Unicode 和 UTF- 8,字符串和字符串直接量之间的区别,以及其他甚至更细微的区别。 原文地址:blog.golang.org/strings 文章篇幅还是挺长的,大家时间都很宝...阅读全文

掘金 2020年02月11日 kevinyan

Go语言之父带你重新认识字符串、字节、rune和字符

以下文章翻译自罗伯·派克发表在Go Blog的文章,文章中为读者详述了Go语言中字符串与我们经常提起的字节、字符还有rune的关系和相互之间的不同。正如派克在文中所说 字符串这个话题对于一篇博客文章来说似乎太简单了,但是要很好地使用它们,不仅需要了解它们的工作原理,还需要了解字节,字符和 rune 的区别,以及 Unicode 和 UTF- 8,字符串和字符串直接量之间的区别,以及其他甚至更细微的区别。原文地址:https://blog.golang.org/strings 文章篇幅还是挺长的,...阅读全文

Segmentfault 2020-02-15 19:32:32 Kevin

leetcode_599

Golang: 思路:用了两个map,时间复杂度还行,但空间复杂度可太高了,第一个map存放长度更长的列表,第二个map去存储索引最小的字符串集合。代码还是有些复杂的,而且空间复杂度太低了,不推荐。 代码如下: func findRestaurant(list1 []string, list2 []string) []string { if len(list1)==0||len(list2)==0{ return nil } minsum:=-1 dic:=make(map[string]int...阅读全文

简书 2020-02-11 16:33:04 淳属虚构