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 } //...
计算机网络概览
...
ssh 隧道 端口转发
使用SSH端口转发 如果物理机在远程,你需要使用SSH的端口转发功能来将远程物理机上的容器端口转发到你的PC上。这可以通过使用-L参数实现,如下所示: 1ssh -L 本地端口:localhost:13579 用户名@物理机IP 其中“本地端口”是你希望在PC上使用的端口号,而“物理机IP”是物理机的IP地址。 例如:我想直接登录110.43.203.19 上其中一个容器,而其没有放开对应容器的端口,我们就可以将端口映射到本地PC; 123ssh -L 13579:localhost:13579 root@110.43.203.19 -p 30005 // ssh -p 13579 root@localhost
leetcode 208. 实现 Trie (前缀树)
Trie [traɪ] 读音和 try 相同,它的另一些名字有:字典树,前缀树,单词查找树等。 208. 实现 Trie (前缀树) - 力扣(LeetCode) Trie 是一颗非典型的多叉树模型,多叉好理解,即每个结点的分支数量可能为多个。 为什么说非典型呢?因为它和一般的多叉树不一样,尤其在结点的数据结构设计上,比如一般的多叉树的结点是这样的: 12345678type TrieNode struct { Value int Next *TrieNode} 而 Trie 的结点是这样的(假设只包含’a’~’z’中的字符): 12345678type TrieNode struct { children [26]*TrieNode isEnd ...
Golang slice作为参数传递给函数需要使用指针
123456789101112131415161718func combine(n int, k int) [][]int { res := [][]int{} dfs(1,n,k,&res,&[]int{}) return res}func dfs(s, n, k int, res *[][]int, item *[]int) { if len(*item) == k { *res = append(*res, append([]int{}, *item...)) return } for i := s; i <= n-(k-len(*item))+1; i++{ *item = append(*item, i) dfs(i+1, n, k, res, item) *item = (*item)[:len(*item)-1] ...
设计题 总结
举个简单的例子:设计题 - 实现浏览器历史记录1.初始化 homepage 和历史记录容量2.浏览网页 和当前页相同,则直接返回 和当前页不同,如果容量满了,则删除最早的记录;清楚之前当前页的后边的历史记录,并把最新的当前页添加到最后。3.实现前进和后退功能1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192/* * Copyright (c) 2023 Lei Qi. All rights reserved. * Author: Lei Qi * Description: 浏览器实现 * Date: 2023/10/10 上午12:33 */package mainimport ( "container/list" "fmt")type...
windows IE代理问题解决
CMD 检查系统代理配置: - 通过命令提示符运行`netsh winhttp show proxy`来查看当前的系统代理设置。 - 如果需要更改系统代理,可以使用`netsh winhttp set proxy`命令进行设置。
leetcode 双指针
1234567891011121314// 删除有序数组中的重复元素func removeDuplicates(nums []int) int { slow:=0 for fast:=1;fast <len(nums);fast++ { if nums[fast] != nums[slow] { slow++// 跳到下个位置,保存slow nums[slow] = nums[fast] } } return slow +1} slow是指向当前已经处理好的序列的尾部,右指针指向待处理序列的头部。右指针不断向右移动,每次右指针指向非零数,则将左右指针对应的数交换,同时左指针右移。 注意到以下性质: 左指针左边均为非零数; 右指针左边直到左指针处均为零。因此每次交换,都是将slow指针的零与fast指针的非零数交换,且非零数的相对顺序并未改变。 12345678910func...
leetcode 单调栈
单调栈用途不太广泛,只处理一类典型的问题,比如「下一个更大元素」,「上一个更小元素」 输入一个数组 nums,请你返回一个等长的结果数组,结果数组中对应索引存储着下一个更大元素,如果没有更大的元素,就存 -1 1234567891011121314151617181920212223func nextGreaterElement(nums []int) []int { n := len(nums) // 存放答案的数组 res := make([]int, n) // 倒着往栈里放 s := make([]int, 0) for i := n - 1; i >= 0; i-- { // 倒着入栈是为了后边正着出栈 // 判定个子高矮 for len(s) > 0 && s[len(s)-1] <= nums[i] { // 矮个起开,反正也被挡着了。。。 s = s[:len(s)-1] ...
