【面试题】合并重叠区间
给定一组 区间,合并所有重叠的 区间。 例如: > 给定:[1,3],[2,6],[8,10],[15,18] > 返回:[1,6],[8,10],[15,18] ```go /** * 区间的定义如下: * type Interval struct { * Start int * End int * } */ func merge(intervals []Interval) []Interval { } ``...阅读全文
给定一组 区间,合并所有重叠的 区间。 例如: > 给定:[1,3],[2,6],[8,10],[15,18] > 返回:[1,6],[8,10],[15,18] ```go /** * 区间的定义如下: * type Interval struct { * Start int * End int * } */ func merge(intervals []Interval) []Interval { } ``...阅读全文
切片是对某个容器不同区间范围的引用。 a := []int{0,0,0,0,0} 这行代码实际上包含了两个逻辑步骤: 1.创建了一个容量为5的容器 2.a引用容器[0:5]的区间,a[1]=1即设置变容器第二个位置的值为1。 b := a[0:2] 这行代码并没有创建新的容器,只是在原有容器上增加了一个新的引用b,b可以修改容器的[0:2]区间内的值,由于a也可以修改这个区间的值,所以对b做出赋值操作也会反应到a上...阅读全文
Golang: 思路:这题会稍微有些难度,我的写法是找到新区间起点和终点分别在原先的区间的哪个位置(包括是否在区间内) 代码如下: func insert(intervals [][]int, newInterval []int) [][]int { i:=0 flag:=0 for i
打乱一个没有重复元素的数组。 image.png golang代码: package shuffle import ( "math/rand" "time" ) type Solution struct { array []int backup []int //备份 } func Constructor(nums []int) Solution { return Solution{ backup: append([]int{}, nums...), array: append([]int{}, nums...), } } // Reset the array to its original configuration and return it. func (this *Solution) ...阅读全文
# proto 中注入 tag, 验证 #### 1. 介绍 - 1. 对 `xxx.pd.go` 文件中的 `struct` 注入自定义的 `tag` - 2. 通过验证器对内容进行验证, 验证器暂只支持: 必填, 长度, 多个一个必填 #### 2. 注入工具使用 - 1. 先下载本项目: `go get -u gitee.com/xuesongtao/protoc-go-valid` - 2. `protoc-go-valid` 命令操作, 如下: - 2.1 `protoc-go-valid -init="true"` - 2.1 `protoc-go-valid -d="待注入的目录"` - 2.2 `prot...阅读全文
Golang: 思路:找到插入区间与原区间的交集,一次遍历,然后统一处理。 代码如下: func insert(intervals [][]int, newInterval []int) [][]int { i:=0 flag:=0 for i