路由器设置桥接
设置密码类型和主路由一样 记得关闭DHCP服务器
leetcode 406. 根据身高重建队列【贪心】
406. 根据身高重建队列 - 力扣(LeetCode) 12345678910111213141516func reconstructQueue(people [][]int) [][]int { sort.Slice(people, func(i, j int) bool { if people[i][0] == people[j][0]{ return people[i][1] < people[j][1] } return people[i][0] > people[j][0] // 身高由大到小排列 })i // 再按照K进行插入排序,优先插入K小的 for i, p := range people { copy(people[p[1]+1 :i+1], people[p[1] :i+1]) // 腾空出一个位置 people[p[1]] = pi } return people} sort.Slice(people, func(i, j...
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) { ...