
算法
文章平均质量分 63
CRAJA
这个作者很懒,什么都没留下…
展开
-
[go]跳表的实现
之前看某个视频或者书总结的,具体是哪个给忘记了。。感谢前人栽树,我这里只是简单实现和使用 package skip_list import ( "math" "math/rand" "time" ) const ( MaxLevel = 18 //最大层数 Probability = 1 / math.E //每一个节点是否可以向上的概率基数 ) type ( // Comparable 大于返回正数,小于返回负数,等于返回0 Comparable interface { Co原创 2022-04-04 14:03:28 · 548 阅读 · 0 评论 -
[go]树状数组的实现
这个up主讲的非常细,我这里只是简单实现和使用 package treenums type TreeNum struct { nums []int } // NewTreeNum 初始化一个存储n个元素的树状数组 func NewTreeNum(n int) *TreeNum { return &TreeNum{nums: make([]int, n+1)} } //计算x二进制的最低位1及之后的数。101000 -> 001000 func (t *TreeNum) lowbit(原创 2022-04-04 13:50:10 · 418 阅读 · 0 评论 -
[leetcode]树的搜索和回溯算法
树的搜索 树的搜索 · SharingSource/LogicStack-LeetCode Wiki (github.com) 173. 二叉搜索树迭代器 (leetcode-cn.com) 其实我就是先中序遍历一遍…(偷懒了) type BSTIterator struct { result []*TreeNode } func Constructor(root *TreeNode) BSTIterator { result := make([]*TreeNode, 0, 100000) var原创 2021-12-28 13:23:11 · 363 阅读 · 0 评论 -
[leetcode]双指针
双指针贪心两数之和题型快慢指针滑动窗口求满足条件的子区间kmp 贪心 盛水最多的容器 /* 左右指针最开始指向最两边,此时底最大,然后往里面缩小,此时将低的淘汰,往里缩. */ func maxArea(height []int) (ret int) { min := func(a,b int)int{ if a<b{ return a } return b } for i,j:=0,len(height原创 2021-11-13 16:25:41 · 300 阅读 · 0 评论