Golang | Leetcode Golang题解之第77题组合

题目:

题解:

Go 复制代码
func combine(n int, k int) (ans [][]int) {
	// 初始化
	// 将 temp 中 [0, k - 1] 每个位置 i 设置为 i + 1,即 [0, k - 1] 存 [1, k]
	// 末尾加一位 n + 1 作为哨兵
	temp := []int{}
	for i := 1; i <= k; i++ {
		temp = append(temp, i)
	}
	temp = append(temp, n+1)

	for j := 0; j < k; {
		comb := make([]int, k)
		copy(comb, temp[:k])
		ans = append(ans, comb)
		// 寻找第一个 temp[j] + 1 != temp[j + 1] 的位置 t
		// 我们需要把 [0, t - 1] 区间内的每个位置重置成 [1, t]
		for j = 0; j < k && temp[j]+1 == temp[j+1]; j++ {
			temp[j] = j + 1
		}
		// j 是第一个 temp[j] + 1 != temp[j + 1] 的位置
		temp[j]++
	}
	return
}
相关推荐
Bran_Liu31 分钟前
【LeetCode 刷题】字符串-字符串匹配(KMP)
python·算法·leetcode
萧若岚1 小时前
Elixir语言的Web开发
开发语言·后端·golang
00Allen003 小时前
Java复习第四天
算法·leetcode·职场和发展
AI向前看3 小时前
PHP语言的软件工程
开发语言·后端·golang
Pandaconda3 小时前
【Golang 面试题】每日 3 题(四十一)
开发语言·经验分享·笔记·后端·面试·golang·go
Like_wen3 小时前
【Go面试】基础八股文篇 (持续整合)
java·后端·计算机网络·面试·golang·go·八股文
执念斩长河4 小时前
Go反射学习笔记
笔记·学习·golang
咩咩大主教4 小时前
Go语言通过Casbin配合MySQL和Gorm实现RBAC访问控制模型
mysql·golang·鉴权·go语言·rbac·abac·casbin
小小志爱学习4 小时前
提升 Go 开发效率的利器:calc_util 工具库
数据结构·算法·golang
{⌐■_■}4 小时前
【gin】gin中使用protbuf消息传输go案例
开发语言·golang·gin