avatar
文章
191
标签
37
分类
23
首页
文章
  • 归档
  • 分类
  • 标签
  • 说说
摄影集
友链
留言板
关于我
DeepThinking深思
搜索
首页
文章
  • 归档
  • 分类
  • 标签
  • 说说
摄影集
友链
留言板
关于我

DeepThinking深思

【Golang】贪心
发表于2025-06-18|算法LeetCode
贪心算法经典题目及Golang实现贪心算法是一种在每一步选择中都采取当前状态下最优的选择,从而希望导致全局最优解的算法策略。以下是一些LeetCode上经典的贪心算法题目及其Golang实现,并总结一个通用的解题模板。 经典贪心题目及Golang实现1. 分发饼干 (455. Assign Cookies)12345678910111213func findContentChildren(g []int, s []int) int { sort.Ints(g) sort.Ints(s) child, cookie := 0, 0 for child < len(g) && cookie < len(s) { if s[cookie] >= g[child] { child++ } cookie++ } return child} 2. 无重叠区间 (435....
【Golang】优先队列
发表于2025-06-18|算法LeetCode
优先队列在LeetCode上的经典题目及Golang实现优先队列(Priority Queue)是一种重要的数据结构,它在很多算法问题中都有广泛应用。以下是LeetCode上一些经典的优先队列题目,以及用Golang实现的解决方案和模板总结。 优先队列的Golang实现在Golang中,我们可以使用container/heap包来实现优先队列。首先,我们需要定义一个实现heap.Interface的类型: 123456789101112131415161718192021222324252627282930313233343536373839import "container/heap"// 定义一个最小堆type MinHeap []intfunc (h MinHeap) Len() int { return len(h) }func (h MinHeap) Less(i, j int) bool { return h[i] < h[j] }func (h MinHeap) Swap(i,...
【Golang】sort.Search二分包
发表于2025-06-18|算法LeetCode
Golang 中二分查找包的使用方法Go 标准库中的 sort 包提供了二分查找的功能,主要通过 sort.Search 函数实现。下面详细介绍如何使用这个功能。 二分法通用模板12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061func binarySearch(nums []int, target int) int { left, right := 0, len(nums)-1 // 初始化边界 for left <= right { // 终止条件 mid := left + (right-left)/2 // 防止溢出 if nums[mid] == target { return mid // 找到目标 } else if nums[mid] <...
【Golang】DFS
发表于2025-06-18|算法LeetCode
LeetCode 上经典的 DFS 题目及 Golang 实现与模板总结DFS(深度优先搜索)是算法面试中的常见题型,下面我将总结 LeetCode 上一些经典的 DFS 题目,并用 Golang 实现,最后提炼出通用的 DFS 解题模板。 经典 DFS 题目分类及 Golang 实现1. 二叉树遍历类题目 94. 二叉树的中序遍历12345678910111213141516171819202122/** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */func inorderTraversal(root *TreeNode) []int { var res []int var dfs func(node *TreeNode) dfs = func(node *TreeNode) { if node ==...
【Golang】BFS
发表于2025-06-18|算法LeetCode
LeetCode BFS 练习题单与模板总结 (Golang 实现)BFS(广度优先搜索)是一种重要的图遍历算法,特别适合解决最短路径、层次遍历等问题。以下是 Golang 实现的 BFS 模板和分类练习题单。 BFS 通用模板 (Golang)1. 树的 BFS 模板123456789101112131415161718192021222324252627282930313233343536type TreeNode struct { Val int Left *TreeNode Right *TreeNode}func levelOrder(root *TreeNode) [][]int { if root == nil { return [][]int{} } var result [][]int queue := []*TreeNode{root} for len(queue) > 0...
【Golang】滑动窗口
发表于2025-06-17|算法LeetCode
Golang 滑动窗口模板与套路详解针对 LeetCode 1004(最大连续1的个数 III)这类问题,以下是专门为 Golang 开发者准备的滑动窗口实现模板、适用场景和常见变种: Golang 滑动窗口模板(1004 类型)12345678910111213141516171819202122232425func longestOnes(nums []int, k int) int { left, maxLen, zeroCount := 0, 0, 0 for right := 0; right < len(nums); right++ { // 1. 右指针移动:更新窗口状态 if nums[right] == 0 { zeroCount++ } // 2. 左指针移动:当窗口不合法时收缩 for zeroCount > k { if nums[left] == 0...
【Golang】slice append 和copy对比
发表于2025-06-16|编程语言Golang
正确123456789101112131415161718 func 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]//这个才是当身高相同时,将K按照从小到大排序 } return people[i][0]>people[j][0]//这个只是确保身高按照由大到小的顺序来排,并不确定K是按照从小到大排序的 }) //再按照K进行插入排序,优先插入K小的 result := make([][]int, 0) for _, info := range people { result = append(result,...
【Golang】 switch使用
发表于2025-06-16|编程语言Golang
在 Go 语言中,switch 语句提供了灵活的条件分支控制,相比其他语言有更多特性。以下是详细用法和示例: 1. 基础值匹配12345678910111213day := 3switch day {case 1: fmt.Println("Monday")case 2: fmt.Println("Tuesday")case 3: fmt.Println("Wednesday") // 输出case 4: fmt.Println("Thursday")default: fmt.Println("Weekend")} 2. 多值匹配(逗号分隔)123456789char := 'a'switch char {case 'a', 'e', 'i', 'o', 'u': ...
【转载】Golang 新手可能会踩的 50 个坑
发表于2025-06-16|编程语言Golang
转载:wuYin/blog 原文:50 Shades of Go: Traps, Gotchas, and Common Mistakes,翻译已获作者 kcqon 授权。 不久前发现在知乎这篇质量很高的文章,打算加上自己的理解翻译一遍。文章分为三部分:初级篇 1-34,中级篇 35-50,高级篇 51-57 前言Go 是一门简单有趣的编程语言,与其他语言一样,在使用时不免会遇到很多坑,不过它们大多不是 Go 本身的设计缺陷。如果你刚从其他语言转到 Go,那这篇文章里的坑多半会踩到。 如果花时间学习官方 doc、wiki、讨论邮件列表、 Rob Pike 的大量文章以及 Go 的源码,会发现这篇文章中的坑是很常见的,新手跳过这些坑,能减少大量调试代码的时间。 初级篇:1-341. 左大括号 { 一般不能单独放一行在其他大多数语言中,{ 的位置你自行决定。Go 比较特别,遵守分号注入规则(automatic semicolon injection):编译器会在每行代码尾部特定分隔符后加 ; 来分隔多条语句,比如会在 )...
Golang 学习资料
发表于2025-06-16|编程语言Golang
learning/golang/README.md at 8de2b0bd2ad36d296e1808080073cdb8521627af · anzhihe/learning Golang learning book and source code- Head First Go英文版- Go程序设计语言- Go语言实战- Go语言核心编程笔记- Go学习笔记 第四版- Go源码剖析(书签版)- Go_web_编程- Go Web 编程- Go并发编程实战_第1版- Go并发编程实战_第2版_Lite- Go语言并发之道- Go网络编程- Go语言圣经(中文版)- 2020最新Gin框架中文文档- 大厂Go工程师面试题集锦- Golang常见面试题目解析 Golang官网 Golang doc The Go Blog Golang github Go by Example The Go Playground Golang 新手可能会踩的 50 个坑 Go语言101 Go语言中文网 Go 语言学习资料与社区索引 Go...
1…567…20
avatar
Lei Qi
记录、总结、复盘、分享
文章
191
标签
37
分类
23
Follow Me
公告

欢迎关注公众号:DeepThinking深思,本站的文章会同步发布在微信公众号,方便推送~

最新文章
GitHub Trending 日报 - 2026/04/182026-04-18
GitHub Trending 日报 - 2026/04/172026-04-17
GitHub Trending 日报 - 2026/04/162026-04-16
GitHub Trending 日报 - 2026/04/152026-04-15
【Agent工具】龙虾何必是OpenClaw,5分钟让你飞书远控Claude Code2026-04-15
分类
  • AI3
    • AI工具1
  • 工具1
  • 技术栈19
    • DevOps1
    • Docker1
    • Git7
    • Linux5
    • 网络4
    • 自动化1
  • 架构设计3
    • 设计模式3
  • 算法76
    • LeetCode75
    • 速刷记录1
  • 综合56
    • 工具55
    • 比赛1
  • 编程语言33
    • C++1
    • Golang27
    • Python3
    • 前端2
归档
  • 四月 2026 14
  • 三月 2026 20
  • 二月 2026 1
  • 十一月 2025 3
  • 八月 2025 1
  • 七月 2025 5
  • 六月 2025 23
  • 五月 2025 2
网站信息
文章数目 :
191
本站访客数 :
本站总浏览量 :
最后更新时间 :
Copyright © 2022-Lei Qi | leiqi.top
搜索
数据加载中