leetcode 77.组合【回溯】
77. 组合 - 力扣(LeetCode) 使用回溯的模板 123456789101112void backtracking(参数) { if (终止条件) { 存放结果; return; } for (选择:本层集合中元素(树中节点孩子的数量就是集合的大小)) { 处理节点; backtracking(路径,选择列表); // 递归 回溯,撤销处理结果 }} 12345678910111213141516171819202122232425func combine(n int, k int) [][]int { res := [][]int{} path := []int{} // 结束条件 var backtracking func(n, k ,startIdx int) backtracking = func(n, k ,startIdx int) { ...
【BFS DFS通用模板】
深度优先搜索(DFS)通用模板123456789101112131415161718192021222324252627282930313233343536// 通用的深度优先搜索函数func dfs(node int, visited []bool, graph [][]int) { // 边界终止条件 if m n { } // 终止条件 if visited[node] { return } // 处理当前节点 // ... // 标记当前节点为已访问 visited[node] = true // 递归处理相邻节点 for _, neighbor := range graph[node] { dfs(neighbor, visited, graph) }}// 在主函数中调用func main() { // 初始化节点、访问数组等 // ... // 遍历所有节点 ...
leetcode 94.二叉树的中序遍历
递归方法123456789101112131415func inorderTraversal(root *TreeNode) (res []int) { var traversal func(node *TreeNode) traversal = func(node *TreeNode) { if node == nil { return } traversal(node.Left) res = append(res,node.Val) traversal(node.Right) } traversal(root) return res} 非递归方法1234567891011121314151617181920212223func inorderTraversal(root *TreeNode) []int { ans := []int{} if root == nil { return ans ...
【go】初始化双向列表List
在Go语言中,两种方法都可以用于初始化一个list.List。 queue := &list.List{}: 这是使用结构体字面量的方式,创建一个 list.List 类型的结构体变量,并返回该结构体的指针。这种方式创建了一个空的链表。 queue := list.New(): 这是使用 list 包中的 New 函数来创建一个新的 list.List。New 函数返回一个指向新创建的 list.List 实例的指针。同样,这种方式也创建了一个空的链表。 两种方式都是有效的
【20240114】LeetCode 83. 删除排序链表中的重复元素
Problem: 83. 删除排序链表中的重复元素 [TOC] 思路 遍历 解题方法 描述你的解题方法 复杂度时间复杂度: 添加时间复杂度, 示例: $O(n)$ 空间复杂度: 添加空间复杂度, 示例: $O(n)$ Code[]123456789101112131415161718192021222324252627282930313233343536373839/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */func deleteDuplicates(head *ListNode) *ListNode { for i := head; i != nil && i.Next != nil ; { if i.Next.Val == i.Val { i.Next = i.Next.Next //...
【Win】键盘下键坏了,使用组合键模拟下方向键
使用 AutoHotKey 来创建一个脚本,使得按下 Alt + S 时模拟按下下方向键。以下是创建这样一个脚本的步骤: 下载并安装 AutoHotKey: 访问 AutoHotKey 官网,下载并安装 AutoHotKey v1.0。创建脚本文件: 打开文本编辑器(如记事本)并创建一个新的脚本文件,将以下内容复制粘贴到文件中: 1!s::Send {Down} 这个脚本表示当你按下 Alt + S 组合键时,将模拟按下下方向键。保存文件: 将文件保存为 .ahk 扩展名(例如,AltSRemap.ahk)。 运行脚本: 双击保存的 .ahk 文件,它将在系统托盘中运行。 现在,按下 Alt + S 组合键会模拟按下下方向键的效果。你可以根据需要修改脚本中的组合键,确保不会与其他快捷键冲突。
【20240106】leetcode 2807. 在链表中插入最大公约数
2807. 在链表中插入最大公约数 - 力扣(LeetCode) 最大公约数(GCD,Greatest Common Divisor)是两个或多个整数的共有因数中的最大值。也叫作最大公因数、最大公因子或最大公量。如果两个整数的最大公约数是 1,那么它们被称为互质。 计算两个整数的最大公约数有多种方法,其中最著名的方法之一是辗转相除法(Euclidean Algorithm)。辗转相除法的基本思想是通过反复应用两个整数的除法余数关系,直到余数为零为止。具体步骤如下: 用较大的数除以较小的数,得到余数。 将较小的数作为新的被除数,余数作为新的除数。 重复步骤 1 和 2,直到余数为零。 最后的非零余数即为最大公约数。 这个算法的效率很高,时间复杂度为 �(log(min(�,�)))O(log(min(a,b)))。 以下是一个用 Go 语言实现的最大公约数的辗转相除法示例: 123456789101112131415161718192021222324package mainimport "fmt"// 辗转相除法求最大公约数func gcd(a,...
LeetCode 1071. 字符串的最大公因子
1071. 字符串的最大公因子 解题思路: 暴力解法123456789101112131415161718192021222324252627282930313233343536373839404142func gcdOfStrings(str1 string, str2 string) string { n1, n2 := len(str1), len(str2) // 从最长的可能的子串长度开始尝试 for i := min(n1, n2); i > 0; i-- { if n1%i == 0 && n2%i == 0 { commonSubstring := str1[:i] // 检查是否满足条件 if checkDivisible(str1, commonSubstring) && checkDivisible(str2, commonSubstring) { ...
windows新增wsl bash here键快捷方式
win + R 输入regedit输入到 计算机\HKEY_CLASSES_ROOT\Directory\Background\shell 新建wsl_bash_here目录, 设置如下默认值 新建command新建项,输入wsl.exe 的地址 成功可以看到右侧是有wsl bash here的选项的在当面目录打开wsl 成功原理和添加git bash here 类似, 参考:手动添加Git Bash Here到右键菜单(超详细)_gitbash添加到右键-CSDN博客
git 设置免密配置-全局免密-单仓库免密-SSH免密
介绍之前我们要首先知道一个简单的概念:https通过记住账号密码免登,ssh通过校验生成的密钥免登。 通常都用ssh校验。 查看通信方式 在项目目录中运行命令: 1git remote -v 如果出现提示是: 12origin https://gitee.com/xxx/xxx.git (fetch)origin https://gitee.com/xxx/xxx.git (push) 则证明是https 通信,这样每次都会提示输入用户名和密码,如果我们还是使用https则看下文,全局https免密 和单个仓库免密如果我们git远端配置了ssh 配置; 我们将其修改为ssh的地址 一、https 方式及免密码配置0. 项目中 git 基本配置全局用户名密码配置 12git config --global user.name "xxx"git config --global user.email "lei_qi@outlook.com" 项目初始化,生成 .git...