摘要: package main func main() { } //Definition for a binary tree node. type TreeNode struct { Val int Left *TreeNode Right *TreeNode } // 938. Range Sum of 阅读全文
posted @ 2019-11-05 14:26 天之草 阅读(922) 评论(0) 推荐(0) 编辑
摘要: 如何利用Go提供的一些工具和参数,帮助写出更好的代码? 一. golint 检查代码规范 例如 golint player.go 或 golint game/ golint <directory|files> golint 会检测的方面: 变量名规范 变量的声明,像var str string = 阅读全文
posted @ 2019-10-30 11:24 天之草 阅读(1755) 评论(0) 推荐(0) 编辑
摘要: package main import "fmt" func main() { arr := []int{8, 9, 5, 7, 1, 2, 5, 7, 6, 3, 5, 4, 8, 1, 8, 5, 3, 5, 8, 4} //result := mergeSort(arr) result := 阅读全文
posted @ 2019-10-25 14:27 天之草 阅读(572) 评论(0) 推荐(0) 编辑
摘要: 布隆过滤器(Bloom Filter) 是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。 它的优点是空间效率和查询时间都比一般的算法要好的多,缺点是有一定的误识别率和删除困难。 本质上布隆过滤器是一种数据结构,比较巧妙的概 阅读全文
posted @ 2019-09-11 15:28 天之草 阅读(1490) 评论(0) 推荐(0) 编辑
摘要: 首先,golang默认都是采用值传递,即拷贝传递。 最终我们可以确认的是Go语言中所有的传参都是值传递(传值),都是一个副本,一个拷贝。因为拷贝的内容有时候是非引用类型(int、string、struct等这些),这样就在函数中就无法修改原内容数据;有的是引用类型(指针、map、slice、chan 阅读全文
posted @ 2019-07-27 15:12 天之草 阅读(1012) 评论(0) 推荐(0) 编辑
摘要: long time 没写博客了,最近在搞golang服务器优化,颇有心得 场景一: 定时器随着人数增多有延迟,延时蛮大,用法是在 time.AfterFunc之后往通道里面发送消息, 一直打印从开始发到,通道从缓冲区取出消息的时间差,发觉不对。 错误:打印方式不对,不应该在从缓冲区取出消息那一刻打印 阅读全文
posted @ 2019-07-08 19:54 天之草 阅读(728) 评论(0) 推荐(0) 编辑
摘要: type ListNode struct { Val int Next *ListNode } // 83. Remove Duplicates from Sorted List 删除有序链表中的重复元素 // 解题思路:相同的只改变指针指向,不同的才会移动当前的cur指针,cur作为当前判断的指针 阅读全文
posted @ 2019-05-13 11:09 天之草 阅读(2165) 评论(0) 推荐(0) 编辑
摘要: redis 和 mysql的对比 Redis为什么会快?✎ 完全基于内存 mysql是持久化存储,存放在磁盘里面,检索的话,会涉及到一定的IO,为了解决这个瓶颈,于是出现了缓存,比如现在用的最多的 memcached(简称mc)。首先,用户访问mc,如果未命中,就去访问mysql,之后像内存和硬盘一 阅读全文
posted @ 2019-04-03 17:02 天之草 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 测试数据:单协程操作1亿数据,以及多协程(10条协程)操作1亿数据(每条协程操作1kw数据) 废话少说,贴代码: 单协程测试运算: 运行时间为:0.065330877 多协程测试运算: 运行时间为:0.019804929 比较结果,和预期的是一样,多协程要比单协程处理数据快,很多人还会去设置runt 阅读全文
posted @ 2018-12-25 12:10 天之草 阅读(3407) 评论(2) 推荐(0) 编辑
摘要: 假如我们没有用协程通道或者加锁的方式,直接并发使用map,会出现线性不安全 例如: 报错: 解决方法: 使用锁之后就不会有问题: 又或者是利用协程通道,来保证线程安全 Go的哲学之一就是:不要通过共享内存来通信,而要通过通信来共享内存,前者就是传统的加锁,后者就是Channel。 反正涉及到并发安全 阅读全文
posted @ 2018-12-01 15:04 天之草 阅读(769) 评论(0) 推荐(0) 编辑