随笔分类 -  Go

摘要:单例分为饿汉式和懒汉式 在初始化单例唯一指针的时候,就已经提前开辟好了一个对象,申请了内存。 饿汉式的好处是,不会出现线程并发创建,导致多个单例的出现,但是缺点是如果这个单例对象在业务逻辑没有被使用,也会客观的创建一块内存对象。那么与之对应的模式叫“懒汉式” 饿汉式需要加锁保证线程安全 单例模式的优 阅读全文
posted @ 2022-09-30 19:38 Notomato 阅读(32) 评论(0) 推荐(0) 编辑
摘要:参考链接 练习: 设计一个电脑主板架构,电脑包括(显卡,内存,CPU)3个固定的插口,显卡具有显示功能(display,功能实现只要打印出意义即可),内存具有存储功能(storage),cpu具有计算功能(calculate)。 现有Intel厂商,nvidia厂商,Kingston厂商,均会生产以 阅读全文
posted @ 2022-09-30 00:38 Notomato 阅读(54) 评论(0) 推荐(0) 编辑
摘要:思路: 二分+递归 对k二分,分别比较a,b k/2位置的大小,小的那一部分就可以删除了,再更新k basecase是 k为1或者 其中一个数组删完了 package main import "fmt" func findKth(a, b []int, aleft, bleft, k int) in 阅读全文
posted @ 2022-09-17 15:08 Notomato 阅读(25) 评论(0) 推荐(0) 编辑
摘要:Golang代码 package main import ( "fmt" "strconv" "strings" ) type Treenode struct { Val int Left, Right *Treenode } func Serialization(node *Treenode) s 阅读全文
posted @ 2022-09-16 15:52 Notomato 阅读(24) 评论(0) 推荐(0) 编辑
摘要:Golang如何判断接口是否实现 package main type people interface { getage() int } type stu struct { Age int Name string } type staff struct { Age int Name string } 阅读全文
posted @ 2022-09-06 13:56 Notomato 阅读(119) 评论(0) 推荐(0) 编辑
摘要:Golang反射学习笔记 参考连接 package main import ( "fmt" "reflect" ) type common interface { Love(string) string } type people struct { Name string `json:"name"` 阅读全文
posted @ 2022-09-01 13:57 Notomato 阅读(26) 评论(0) 推荐(0) 编辑
摘要:package main import "fmt" var swapcnt int func main() { arr := []int{2, 3, 4, 5, 1} //idx := Swap(arr, 0, len(arr)) //fmt.Println(idx, arr) myquickSor 阅读全文
posted @ 2022-08-31 13:14 Notomato 阅读(43) 评论(0) 推荐(0) 编辑
摘要:思路: 先转逆波兰,再求值 逆波兰求值的思路是,碰到数字入栈,碰到运算符则取栈顶两元素运算后入栈,最终栈内数字即为答案。 中缀表达式转为后缀表达式,即逆波兰表达式方法:对于中缀表达式的每个元素,遇到数字则直接加到结果上面,遇到操作符,若栈空或者当前操作符不小于栈顶操作符优先级(乘除大于加减),则入栈 阅读全文
posted @ 2022-08-27 19:01 Notomato 阅读(102) 评论(0) 推荐(0) 编辑
摘要:Python版本 class Trie: def __init__(self): self.children = defaultdict(Trie) self.word = "" self.is_word = False def insert(self, word): cur = self for 阅读全文
posted @ 2022-08-20 17:10 Notomato 阅读(26) 评论(0) 推荐(0) 编辑
摘要:Python版本 class UF: parent = {} size = {} cnt = 0 def __init__(self, M): # 初始化 parent,size 和 cnt # self.parent = {i for i in range(n)} def find(self, x 阅读全文
posted @ 2022-08-20 17:08 Notomato 阅读(5) 评论(0) 推荐(0) 编辑
摘要:根据先序中序->后序,先序后序->中序,中序后序->先序,构建二叉树的方法,注意根据先序后序构建中序并不是唯一的,下面的代码以字符串模拟,若要还原树结构,将关键部分换成node即可 package main import "fmt" func prein2post(preorder string, 阅读全文
posted @ 2022-08-15 15:11 Notomato 阅读(47) 评论(0) 推荐(0) 编辑
摘要:邮局村庄问题,n个村庄m个邮局,每个村庄都要去一个离自己最近的邮局,求村庄到邮局的最短总距离 输入 n,m village 输出 最短距离 该问题是区间dp,首先假设只有一个邮局,则将邮局放在村庄数量的中位数位置可以得到最短距离, 设dis[i][j] 表示第i到j个村庄之间放一个邮局的最短距离,通 阅读全文
posted @ 2022-08-03 19:39 Notomato 阅读(83) 评论(0) 推荐(0) 编辑
摘要:题目:求小于n的所有质数 package main import "fmt" func main() { primes := []int{} n := 1010 notprime := make(map[int]bool) for i := 2; i <= n; i++ { if !notprime 阅读全文
posted @ 2022-07-16 16:59 Notomato 阅读(61) 评论(0) 推荐(0) 编辑
摘要:Golang 输入 package main import ( "bufio" "fmt" "os" "strconv" "strings" ) func main() { // input a int num var a int fmt.Scan(&a) fmt.Println(a) var b, 阅读全文
posted @ 2022-07-14 00:42 Notomato 阅读(267) 评论(0) 推荐(0) 编辑
摘要:介绍 Go的list是一个双向链表,链表可以高效的删除插入元素,很多场景是需要用到这个结构的,比如cache 使用 list在包container/list下,可以通过NeW()初始化或者var声明 两种方法如下 mylist := list.New() var mylist list.List 常 阅读全文
posted @ 2022-05-20 10:51 Notomato 阅读(1094) 评论(0) 推荐(0) 编辑
摘要:本文主要介绍Golang的堆排序使用方法,通过container/heap实现堆相关的操作 堆因为其插入删除的操作时间复杂度低,因此优先队列通常是靠堆来实现的。Go的堆使用要实现heap包下的Interface接口 type Interface interface { sort.Interface 阅读全文
posted @ 2022-05-19 17:35 Notomato 阅读(165) 评论(0) 推荐(0) 编辑
摘要:sort包简介 官方文档 Golang的sort包用来排序,二分查找等操作。本文主要介绍sort包里常用的函数,通过实例代码来快速学会使用sort包 sort包内置函数 sort.Ints(x []int) ints := []int{1, 4, 3, 2} fmt.Printf("%v\n", i 阅读全文
posted @ 2022-05-16 17:18 Notomato 阅读(503) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示