算法
文章平均质量分 63
CRAJA
这个作者很懒,什么都没留下…
展开
-
[go]跳表的实现
之前看某个视频或者书总结的,具体是哪个给忘记了。。感谢前人栽树,我这里只是简单实现和使用package skip_listimport ( "math" "math/rand" "time")const ( MaxLevel = 18 //最大层数 Probability = 1 / math.E //每一个节点是否可以向上的概率基数)type ( // Comparable 大于返回正数,小于返回负数,等于返回0 Comparable interface { Co原创 2022-04-04 14:03:28 · 515 阅读 · 0 评论 -
[go]树状数组的实现
这个up主讲的非常细,我这里只是简单实现和使用package treenumstype TreeNum struct { nums []int}// NewTreeNum 初始化一个存储n个元素的树状数组func NewTreeNum(n int) *TreeNum { return &TreeNum{nums: make([]int, n+1)}}//计算x二进制的最低位1及之后的数。101000 -> 001000func (t *TreeNum) lowbit(原创 2022-04-04 13:50:10 · 360 阅读 · 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 · 314 阅读 · 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 · 275 阅读 · 0 评论