2025-12-15
golang
00

相关信息

接雨水,这道题最大的问题在于理解怎么才能接到雨水

接雨水其实就是看当前位置的左右是否存在格挡,存在格挡可以存雨水,能存放的最大容积为左右出现的格挡的最大高度

第一步 声明变量初始值 left right maxLeft Maxleft res

第二步 从左右两边开始对比: for left < right {}

第三步 if height[left] < height[right] 则处理左边,否则处理右边

第四步 处理左边 如果当前位置(left)大于等于 maxLeft 则更新maxLeft 否则说明左边的高度是超出当前位置的,可以进行容积增加: maxLeft - height[left]

右边的逻辑和左边一样,发现右边的格挡更高,则增加高度差,否则更新高度最大值(当前值比maxRight更大)

js
func trap(height []int) int { left, right := 0, len(height)-1 leftMax, rightMax := 0, 0 res := 0 for left < right { if height[left] < height[right] { if height[left] >= leftMax { leftMax = height[left] } else { res += leftMax - height[left] } left++ } else { if height[right] >= rightMax { rightMax = height[right] } else { res += rightMax - height[right] } right-- } } return res }
2025-12-08
golang
00

相关信息

golang实现交替打印数字字母

该题的关键在意通过channel进行控制

  • 声明一个数字ch,一个字母ch
  • 分别启动一个go 协程, 一直读取channel,读取到则进行消费,消费后,写入对方的信号到通道中
2025-11-27
golang
00

相关信息

golang基础学习

  • 字符串的小问题
go
①可以用==比较 ②不可以通过下标的方式改变某个字符,字符串是只读的 ③不能和nil比较
  • 数组定义问题 数组是可以通过下标定义的。case:
js
array := [...]int{1,2,3,9:34} 表示array[9]==34len(array)就是10
  • Go 支持什么形式的类型转换? 支持显示类型的转换
  • 空结构体
js
js
不包含任何字段的结构体叫做空结构体 struct{} 定义: var et struct{} et := struct{}{} type ets struct {} / et := ets{} / var et ets 特性: * 所有的空结构体的地址都是同一地址,都是zerobase的地址,且大小为0 使用场景: * 用于保存不重复的元素的集合,Go的map的key是不允许重复的,用空结构体作为value,不占用额外空间。 * 用于channel中信号传输,当我们不在乎传输的信号的内容的时候,只是说只要用信号过来,通知到了就行的时候,用空结构体作为channel的类型 * 作为方法的接收者,然后该空结构体内嵌到其他结构体,实现继承
2025-11-27
golang
00

相关信息

内存四驱

代码区:存放代码 全局区:常量+全局变量。最终在进程退出时,由操作系统回收。 堆区:空间充裕,数据存放时间较久。一般由开发者分配,启动Golang的GC由GC清除机制自动回收。 栈区:空间较小,要求数据读写性能高,数据存放时间较短暂。由编译器自动分配和释放,存放函数的参数值、局部变量、返回值等、局部变量等(局部变量如果产生逃逸现象,可能会挂在在堆区)
2025-11-05
linux相关
00

相关信息

相关信息

  • 首先需要用ctrl + z将任务暂停
  • 然后执行下面的操作
js
bg 1&&disown %1