jupyter
安装pip install notebook 用于启动 Jupyter Notebook 服务的一系列命令 12345jupyter-notebook stop 8888JUPYTER_TOKEN=$(< /dev/urandom tr -dc A-Za-z0-9 | head -c16; echo)echo $JUPYTER_TOKENnohup jupyter-notebook --ip 0.0.0.0 --port 8888 --no-browser --allow-root --NotebookApp.token=$JUPYTER_TOKEN &jupyter-notebook list 这里是每条命令的简要说明: 12345jupyter-notebook stop 8888:停止端口为 8888 的 Jupyter Notebook 服务。JUPYTER_TOKEN=$(< /dev/urandom tr -dc A-Za-z0-9 | head -c16; echo):生成一个随机的 16 位的 token,用于 Jupyter...
leetcode 每日温度 单调栈
739. 每日温度 - 力扣(LeetCode) 栈里边存放的是还没有找到后边更大值的元素 123456789101112131415func dailyTemperatures(temperatures []int) []int { n := len(temperatures) ans := make([]int, n) st := []int{} for i, t := range temperatures { for len(st) > 0 && t > temperatures[st[len(st)-1]] { j := st[len(st)-1] st = st[:len(st)-1] ans[j] = i - j } st = append(st, i) } return ans}...
go语言实现优先队列
Go 语言中实现优先队列,最大堆和最小堆通常可以通过使用容器/heap包来完成。Go 语言的heap包提供了一个堆操作的接口,它允许用户实现任意类型的堆,包括最大堆和最小堆。 1. 优先队列优先队列是一种特殊的队列,元素出队顺序是根据优先级来决定的,而不是按照元素入队顺序。在Go语言中,优先队列可以通过heap包来实现。 2. 最大堆最大堆是一种特殊的完全二叉树,其中每个父节点的值都大于或等于其子节点的值。在Go语言中,可以通过实现heap.Interface接口来创建最大堆。 3. 最小堆最小堆与最大堆相反,其中每个父节点的值都小于或等于其子节点的值。最小堆也可以通过实现heap.Interface接口来创建。 实现步骤定义堆的元素类型首先,你需要定义一个元素类型,这个类型将用于存储在堆中的元素。 1type IntHeap []int 实现heap.Interface接口要使用heap包的功能,你需要实现heap.Interface接口。这个接口包括三个方法:Push, Pop, 和 Less。 123456789101112131415func (h...
leetcode 355设计推特
Problem: 355. 设计推特 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798type Twitter struct { userMap map[int]*User}type User struct { userId int followees map[int]bool tweets []*Tweet}type Tweet struct { tweetId int time int userId int}// 推特时间排序var tweetCount intfunc Constructor() Twitter { return...
设计题思考
设计数据结构和算法时,通常需要遵循以下步骤来解决问题: 理解问题:首先,彻底理解题目要求做什么,包括输入、输出、限制条件等。 确定需求:明确需要哪些数据结构来存储信息,以及如何使用这些数据结构来满足题目的需求。 设计数据结构: 确定实体类型:例如,用户(User)、推文(Tweet)等。 确定实体之间的关系:例如,用户可以发布推文,用户可以关注其他用户。 定义方法:根据题目要求,设计所需的方法或函数,如发布推文、关注用户、取消关注和获取信息流。 实现逻辑:为每个方法设计逻辑,考虑如何使用数据结构来实现题目要求的功能。 考虑边界条件和错误处理:确保你的代码可以处理各种边界情况和潜在的错误。 优化:在满足基本要求后,考虑是否可以优化代码,比如提高时间效率或空间效率。 对于LeetCode题目...
如何使用递归
123456789101112131415func sortedArrayToBST(nums []int) *TreeNode { return traversal(nums,0,len(nums)-1)}// 定义:返回nums root 节点func traversal(nums []int,left int , right int) *TreeNode{ if left > right { return nil } mid := (left + right)/2 root := &TreeNode{nums[mid],nil,nil} root.Left = traversal(nums,left,mid-1) // 把后边 root 节点添加到当前root left 左节点上 root.Right = traversal(nums,mid+1,right) // 把后边 root 节点添加到当前root right 左节点上 ...
goland中debug 无法显示全局变量解决
实际只会有局部变量,没有全局变量test 解决方法: 右键 选择+ New Watch ; 或者 按按键 Insert 添加变量 test 即可 添加成功之后每次单步执行都会显示变量结果:
golang 中格式化打印单个字符
在Go语言中,fmt.Printf 函数是用来格式化输出的,它接受一个格式化字符串作为第一个参数,后面跟着相应的参数。格式化字符串中可以包含一些格式化动词(也称为转换说明符),它们定义了如何将相应的参数值转换为字符串并输出。 %c 是一个格式化动词,它指定了对应的参数应该被转换为一个单一的Unicode字符并输出。当你在 fmt.Printf 中使用 %c,并且传入一个整数(int 类型)时,它会将该整数值转换为该整数值对应的Unicode码点的字符。 例如: 12345678package mainimport "fmt"func main() { var codePoint int = 65 // ASCII码中A的码点 fmt.Printf("%c\n", codePoint) // 输出: A} 在这个例子中,变量 codePoint 的值为 65,它是大写字母 “A” 在ASCII编码中的码点。fmt.Printf("%c\n", codePoint)...
golang slice无法添加指针
在Go语言中,指针是一种存储变量内存地址的数据类型。当你有一个指向int的指针,比如timePtr *int,你可以通过*timePtr来访问和修改指针指向的值。然而,指针本身是一个值类型,它存储的是变量的内存地址,而不是变量本身。 在你提供的add函数中: 1func add(timePtr *int) { *timePtr += 1 } //...
计算机网络概览
...