- 博客(25)
- 收藏
- 关注
原创 mac os bigsur安装python-snappy
一直安装失败,提示我'snappy-c.h' file not found,后来看了下和系统版本有关,big sur下需要这么安装:1、brew reinstall snappy2、CPPFLAGS="-I/opt/homebrew/include -L/opt/homebrew/lib" pip install python-snappy3、pip install python-snappy这里的CPPFLAGS是关键,加上后就成功了,这里猜测是brew后snappy的地址
2021-10-25 15:40:15 539
原创 go两个队列实现栈
package mainimport ( "container/list" "fmt")type Queue struct { queue1 *list.List queue2 *list.List}//两个队列实现栈func (q *Queue) Pop() *list.Element { for q.queue1.Len() > 1 { q.queue2...
2020-03-10 16:17:41 355
原创 go实现四种设计模式
一、工厂模式package mainimport "fmt"//工厂模式type Factory interface { GetResult(a, b int) int}type Add struct {}func (p *Add) GetResult(a, b int) int { return a + b}type Sub struct {}func...
2020-03-09 16:50:08 394
原创 go实现字符串匹配,Sunday法
package mainimport "fmt"//字符串匹配func catch(a, b string) bool { i := 0 j := 0 for i < len(a) { if a[i] == b[j] { i++ j++ if j == len(b) { return true } continue } if...
2020-03-09 16:46:58 552
原创 go实现所有无重复子串
package mainimport ( "fmt" "reflect" "sort")var c [][]int//所有无重复子串func main() { a := []int{2, 1, 2, 2} sort.Ints(a) b := []int{} son(0, a, b) fmt.Println(c)}func son(num int, a, b ...
2020-03-09 16:45:45 135
原创 go实现LRU
package mainimport ( "container/list")// Cache 代表LRU缓存实现,暂时未考虑线程安全type Cache struct { // MaxEntries 表示缓存容量的最大值,0表示是一个空缓存 MaxEntries int ll *list.List cache map[string]*list.Element}...
2020-03-09 16:42:08 218
原创 go实现字符串最长回文子串
package mainimport ( "fmt")//求字符串的最长回文子串有多长func main() { a := "abaa" b := getSon(a) fmt.Println(b)}func getSon(s string) int { length := len(s) dp := make([][]int, length) for k := ra...
2020-03-09 16:41:16 229
原创 go实现最长递增子序列
package mainimport ( "fmt")//最长递增子序列func main() { a := []int{1, 4, 3, 4, 2, 3} b := lengthOfLIS(a) fmt.Println(b)}func lengthOfLIS(nums []int) int { dp := make([]int, len(nums)) ans :=...
2020-03-09 16:40:14 158
原创 go实现无重复最长子串
package mainimport ( "fmt" "strings")//无重复最长子串func lengthOfLongestSubstring(s string) int { i, j := 0, 1 length := len(s) max := 1 sons := "" if length <= 1 { return length } sons...
2020-03-09 16:38:31 135
原创 go语言实现八皇后
package mainimport "fmt"var result [][]string//八皇后问题func main() { allNum := make([][]int, 8) for k, _ := range allNum { allNum[k] = make([]int, 8) for key, _ := range allNum[k] { allN...
2020-03-09 16:33:48 202
原创 go语言实现可重复数组的全排列
package mainimport ( "fmt" "reflect")var allNum [][]intvar isTrue []bool//可重复数组的全排列func main() { a := []int{1, 2, 3, 3, 5} p := []int{} isTrue = make([]bool, len(a)) for k := range isT...
2020-03-09 16:31:54 307
原创 go语言实现六种排序
一、快速排序func quickSort(a []int, start, end int) { if end <= start { return } nStart := start nEnd := end //需要从后往前 for nStart < nEnd { for nStart < nEnd && a[nEnd] >= a[s...
2020-03-09 16:26:28 593
转载 如何在 Go 中使用接口
本文转自:https://www.jianshu.com/p/88c4ed564aa9作者:Aaaaaaaaaaayou在开始使用 Go 编程之前,我的大部分工作都是用 Python 完成的。作为一名 Python 程序员,我发现学习使用 Go 中的接口是非常困难的。基础很简单,而且我知道如何在标准库中使用接口,但是我做了很多练习之后才知道如何设计自己的接口。在本文中,我将讨论 Go 的类...
2019-06-20 15:53:56 278
转载 深入解析go语言切片底层实现(与数组的区别)
原文链接:https://www.jianshu.com/p/030aba2bff41作者:一缕殇流化隐半边冰霜切片是 Go 中的一种基本的数据结构,使用这种结构可以用来管理数据集合。切片的设计想法是由动态数组概念而来,为了开发者可以更加方便的使一个数据结构可以自动增加和减少。但是切片本身并不是动态数据或者数组指针。切片常见的操作有 reslice、append、copy。与此同时,切片还具...
2019-05-20 10:19:15 1124
转载 go语言切片作为函数参数传递用append添加元素
原文:https://blog.csdn.net/weixin_42117918/article/details/81835942切片作为函数,通过append添加元素,有可能会更改地址:1)添加的数据元素长度超过切片参数的容量,则会另开辟空间,重新分配底层数组,并复制数据。函数中的此切片与原切片地址不同;此切片指向新开辟的内存。函数运行结束,内存释放,不会影响元切片的内容。2)否则原切...
2019-05-19 10:39:29 1681
原创 剑指offer—可以使用go语言的测试平台
之前在牛客网发现没有go版本的测试,后来找到了这个网站:ACWING,有剑指offer、leetcode以及各个大厂的面试题,并且都可以用go语言来进行编写测试。网址:https://www.acwing.com/同时非常感谢建立该网站和在里边编写题解的大佬们。...
2019-04-10 22:31:05 966
原创 剑指offer—二维数组中的查找go语言版
题目描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。样例输入数组:[ [1,2,8,9], [2,4,9,12], [4,7,10,13], [6,8,11,15]]如果输入查找数值为7,则返回true,如果输入查找数值为5,则...
2019-04-10 22:28:05 184
原创 剑指offer—不修改数组找出重复的数字go语言版
题目描述:给定一个长度为n+1的数组nums,数组中所有的数均在1∼n的范围内,其中n≥1。请找出数组中任意一个重复的数,但不能修改输入的数组。样例给定 nums = [2, 3, 5, 4, 3, 2, 6, 7]。返回 2 或 3。思考题:如果只能使用O(1)的额外空间,该怎么做呢?题目思路:该题目主要使用二分查找的思路和抽屉原理,即在1~n范围内有n...
2019-04-10 22:18:16 222
原创 剑指offer—找出数组中重复的数字go语言版
该题描述:给定一个长度为n的整数数组nums,数组中所有的数字都在0∼n−1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。注意:如果某些数字不在0∼n−1的范围内,或数组中不包含重复数字,则返回 -1;样例给定 nums = [2, 3, 5, 4, 3, 2, 6, 7]。返回 2 或 ...
2019-04-10 22:08:47 766
转载 go语言中实现代码复用的组合
该文章转自https://studygolang.com/articles/17257组合与继承先说说组合与继承的概念。对设计模式有过了解的同学对这两个名词应该都有初步的理解,我们来总结一下:官方解释就不说了,组合一般理解为 has-a 的关系,继承是is-a的关系。以java为例,组合可以理解为类里边添加的属性(一般是接口类型),继承是extends。这里我引用一篇文章的段落浅谈组...
2019-04-03 11:29:02 1846
转载 线程通信和进程通信的区别
本文转自https://www.cnblogs.com/xh0102/p/5710074.html每个进程有自己的地址空间。两个进程中的地址即使值相同,实际指向的位置也不同。进程间通信一般通过操作系统的公共区进行。同一进程中的线程因属同一地址空间,可直接通信。不仅是系统内部独立运行的实体,而且是独立竞争资源的实体。线程也被称为轻权进程,同一进程的线程共享全局变量和内存,使得线程之间共享数...
2019-03-30 22:42:56 163
转载 理解docker容器与镜像
这篇文章希望能够帮助读者深入理解Docker的命令,还有容器(container)和镜像(image)之间的区别,并深入探讨容器和运行中的容器之间的区别。 (该文章转自http://dockone.io/article/783)Image Definition镜像(Image)就是一堆只读层(read-only layer)的统一视角,也许这个定义有些难以理解,下面的这张图能够帮...
2019-03-28 21:36:56 169
原创 leetcode之旅—无重复字符的最长子串go语言版
题目描述:给定一个字符串,请找出其中不含有重复字符的最长子串的长度。例如:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。具体思路:这道题最简单的是用暴力法,两次循环。我用的是窗口滑动法,一次循环但是不是最优解,不过目前先把题目做出来,优化等刷的题多了以后再来做。我的做法具体思路就是创建一个窗口滑动,窗口左右端分别...
2019-03-26 22:42:53 162
原创 leetcode之旅—两数相加go语言版
题目是将两条逆序的链表相加,输出一条新的链表例如:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807这道题主要需要注意:1、两个链表不一样长的情况2、一个链表为空的情况3、两个链表都结束了但是有额外的进未4、需要从头结点的下一个节点开始插入具体代码如下(水平...
2019-03-23 20:58:08 219
原创 记录我的秋招之路——算法go语言实现(1)
正式开始秋招准备,今晚投了华为的实习生面试,进行了笔试。由于并没有准备所以三道题只写了一道。还是很菜的,所以要开始积极准备了。现在把这道题的思路和代码整理一下留作备忘:这道题的题目是通过输入一个字符串来进行计算例如输入:12+41-56,输出答案-3。数的范围是[0-99],不会以+和-开头并且计算仅限+和-,+和-不会连续出现。大概就是这样。代码如下package mainimpo...
2019-03-20 23:28:10 204
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人