
go
梦雨心思
这个作者很懒,什么都没留下…
展开
-
go-设计模式-解释器模式
go 设计模式 解释器模式package mainimport ( "fmt" "regexp" "strconv")type Address struct { City string}type User struct { Id int Name string Age int}func main() { var users = []*User{ {Id: 102, Name: "shenyi", Age: 20}, {Id: 103, Name: "sh原创 2021-10-23 11:34:53 · 171 阅读 · 0 评论 -
go 数组全排列组合实现
go实现全排列组合package mainimport "fmt"func demo(src []int) { for i := 0; i < len(src); i++ { first := src[i] temp := make([]int, 0) temp = append(temp, src[:i]...) temp = append(temp, src[i+1:]...) order([]int{first}, temp) }}func order(s原创 2021-08-30 13:13:38 · 1301 阅读 · 0 评论 -
排序查找有序字符串中的0
一个有规则的字符串 例如ioiioiiioiiiio 求指定_len 长度位置的 前面有多少个o出现下面是代码实现做了优化 时间复杂度简介O(1) 但是需要先做字符串规则处理剩下的不多少 自己看代码package mainimport "fmt"func main() { dd := "ioiioiiioiiiio" //原始序列 fmt.Println(len(dd)) _len := 6 //目标值长度值 m_p := make(map[int]int) sort_arr原创 2021-04-21 16:13:58 · 252 阅读 · 0 评论 -
数组目标值递归
问题:给你一个数组 arr,和一个整数 target。如果可以任意选择 arr 中的数字,能不能累加得到 target,返回 true 或者 false例如:输入 1,2,3,4,5,6 target 3输出 1递归的方法package mainimport "fmt"func process(arr []int, index int, sum int, aim int) int { if index == len(arr) { if sum == aim { return 1原创 2021-04-19 10:51:15 · 158 阅读 · 0 评论 -
radix树实现-go
redix树实现gopackage mainimport "fmt"//radix Nodetype Node struct { Nodes []*Node Index string //节点数据 Path string //节点path}var root = NewRootNode("")func NewRootNode(s string) *Node { return &Node{ Nodes: make([]*Node, 0), Index: "",原创 2021-03-24 19:47:40 · 269 阅读 · 0 评论 -
go归并排序
go归并排序package mainimport "fmt"func split(res []int) []int { if len(res) < 2 { return res } i := len(res) / 2 left := split(res[:i]) right := split(res[i:]) return arrayMerge(left, right)}func arrayMerge(left []int, right []int) []int { r原创 2021-03-18 14:09:07 · 236 阅读 · 0 评论 -
给定一个包括 n 个整数的数组 nums 和 一个目标值 target
//给定一个包括 n 个整数的数组 nums 和 一个目标值 target。//找出 nums 中的三个整数,使得它们的和与 target 最接近。//返回这三个数的和。假定每组输入只存在唯一答案。package mainimport "fmt"//给定一个包括 n 个整数的数组 nums 和 一个目标值 target。//找出 nums 中的三个整数,使得它们的和与 target 最接近。//返回这三个数的和原创 2021-03-17 17:10:22 · 3705 阅读 · 0 评论 -
go 版 堆排序
堆排序package mainimport ( "fmt")func headSort(arr []int){ arrlen := len(arr) if arrlen <= 1 { return } for i:=0;i<arrlen;i++{ buildMinHead(arr[i:]) }}//构建最小堆//注意: 在二叉树中,若当前节点的下标为 i, 则其父节点的下标为 i/2,其左子节点的下标为 i*2,其右子节点的下标为i*2+1;//本代码是原创 2021-03-09 17:06:45 · 115 阅读 · 0 评论 -
单链表制定区域倒序时间复杂度O(n)
有序链表0,1,2,3,4,5,6倒序制定区域例如recover(0,1)特别注意在0 开始的时候 和大于结束节点的时候package mainimport ( "fmt")type Nextn interface { NextNode() *Node}type Node struct { Data string Next *Node}type List struct { HeadNode *Node Len int}func newList()原创 2021-03-08 18:31:14 · 232 阅读 · 0 评论 -
字符串序列-递归方式
package mainimport ( "fmt")func swap(start, end int, S []string) {S[start], S[end] = S[end], S[start]}func permutation(S []string, start, end int) { if start == end { fmt.Println(S) } else { for i := start; i < end; i++ { swap(start,原创 2021-03-02 13:32:39 · 152 阅读 · 0 评论 -
go-bloomfilter
go实现布隆过滤器加载静态资源生成动态资源 并加载适合前端部署,缓解前端眼里,分流控制源码https://github.com/272271975/gofloomfile欢迎star 谢谢原创 2020-11-30 10:17:03 · 128 阅读 · 0 评论 -
go 中间件 设计模式实现
中间件实现粗略版本var (PIPLC *PIPLContext)type Contion func() booltype ItemFn func(carry Contion, item Contion) Contion//PIPL 管道type PIPL struct {C *PIPLContextEntry func() bool}//PipleCMapRet 管...原创 2020-03-30 21:26:13 · 394 阅读 · 0 评论