Go

Go

leetcode 最接近目标值的子序列和 golang

76 0

1755. 最接近目标值的子序列和 由于量级在40,所以单纯的dfs会出问题,所以需要把数组一分为2。然后对得到的数组排序,然后问题就转变为求 2个数组的加和问题。数组排序 一个从大到小,一个从小到大。求最接近目标的值即可。func minAbsDifference(nums []int, goal int) int {ans := math.MaxInt32n := len(nums)m := map[int]bool{}dfs(nums[:n/2], 0, m)A := make([]int, 0,

Go

golang 归并排序

46 0

归并排序的时间复杂度为:O(nlogn) func HeapSort(data []int) []int {len := len(data)if len <=1 {return data}//将待排序的数组划分为左右2部分,递归的进行mid :=len/2left :=data[:mid]right :=data[mid:]left= HeapSort(left)right= HeapSort(r

Go

手撸golang etcd raft协议之6

43 0

手撸golang etcd raft协议之6 缘起 最近阅读 [云原生分布式存储基石:etcd深入解析] (杜军 , 2019.1) 本系列笔记拟采用golang练习之 gitee: https://gitee.com/ioly/learning.gooop raft分布式一致性算法 分布式存储系统通常会通过维护多个副本来进行容错, 以提高系统的可用性。 这就引出了分布式存储系统的核心问题——如何保证多个副本的一致性?Raft算法把问题分解成了四个子问题: 1. 领袖选举(leader election)

Go

Go各时间字符串的解析

128 0

title: "Go各时间字符串的解析" date: 2021-02-28T09:08:19+08:00 draft: true tags: ['go'] author: "dadigang" author_cn: "大地缸" personal: "http://www.real007.cn"关于作者 http://www.real007.cn/about Go各时间字符串的解析Go 中时间格式化的模板 const (ANSIC = "Mon Jan _2 15:04:05 2006"Unix

Go

go每日一库 [home-dir] 获取用户主目录

66 0

关于我 我的博客|文章首发 顾名思义,go-homedir用来获取用户的主目录。实际上,通过使用标准库os/user我们也可以得到内容,使用以下方式 标准库使用 package mainimport ("fmt""log""os/user" )func main() {u, err := user.Current()if err != nil {log.Fatal(err)}fmt.Println("Home dir:", u.HomeDir) }控制台输出 Home dir: C:\Users\Adm

Go

Go语言学习6-字典类型

157 0

3. Go语言数据类型 上篇我们介绍了Go语言的切片类型,本篇我们了解一下Go语言的字典类型。主要如下: 3.4 字典 在Go语言中,字典类型的官方称谓是Map, 它是哈希表(Hash Table)的一个实现。 3.4.1 类型表示法 如果一个字典类型的键的类型为K,且元素的类型为T,那么用于表示这个字典类型的类型字面量: map[K]T 字典类型声明中的元素类型可以是任意一个有效的Go语言数据类型(除了函数类型、字典类型或切片类型)。键的类型必须是可比较的。如果字典类型的键类型是接口类型,那么就要求在程

Go

golang base64 斜杠 等号 问题

416 0

背景 写一个接口认证的时候,密码需要通过SHA1+HMAC加密以后转base64,发现加密的结果不符合预期 问题 shell里面通过命令生成的字符串 golang生产的结果有差别 具体的说,shell 生产的base64传里面有'/',对应golang生产的是'_',例如下面案例 shell输出: NaY6swRy/2BgUPuVUAWEDlaWZ3s= golang输出:NaY6swRy_2BgUPuVUAWEDlaWZ3s=原因golang base64 有不同方法进行encode/decode,可以

Go

手撸golang etcd raft协议之5

42 0

手撸golang etcd raft协议之5 缘起 最近阅读 [云原生分布式存储基石:etcd深入解析] (杜军 , 2019.1) 本系列笔记拟采用golang练习之 gitee: https://gitee.com/ioly/learning.gooop raft分布式一致性算法 分布式存储系统通常会通过维护多个副本来进行容错, 以提高系统的可用性。 这就引出了分布式存储系统的核心问题——如何保证多个副本的一致性?Raft算法把问题分解成了领袖选举(leader election)、 日志复制(log