Go知识库
kuc火
这个作者很懒,什么都没留下…
展开
-
Go中的Map实现机制
go中我们常用到的map的底层实现机制知识原创 2023-03-29 14:24:17 · 518 阅读 · 0 评论 -
Go实现两个Goroutine通信
实现两个goroutine通信,要求如下实现pingpong效果保证程序能任意时长执行,且收到ctrl+c信号之后,全身而退(即保证各个goroutine完整退出)在第三个goroutine中,可随时查找前两个goroutine各自发送了多少个消息,并可设置各自pingpong的频率,如果同时有一万个goroutine过来查找呢符合编码规范的前提下,代码质量控制在两位数答案package mainimport ( "fmt" "os" "os/signal" "syscall"原创 2022-02-28 16:10:23 · 594 阅读 · 0 评论 -
Go 算法 leetcode 019 删除链表的倒数第 N 个结点
这里写目录标题题目链接答案题目给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。链接leetcode 019 删除链表的倒数第 N 个结点答案/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */func removeNthFromEnd(head *ListNode, n int) *ListNode {原创 2022-02-26 22:10:12 · 572 阅读 · 0 评论 -
Go 算法 leetcode 143 重排链表
这里写目录标题题目链接答案题目给定一个单链表 L 的头节点 head ,单链表 L 表示为:L0 → L1 → … → Ln - 1 → Ln请将其重新排列后变为:L0 → Ln → L1 → Ln - 1 → L2 → Ln - 2 → …不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。链接leetcode 143 重排链表答案/** * Definition for singly-linked list. * type ListNode struct { *原创 2022-02-26 18:19:26 · 474 阅读 · 0 评论 -
Go 算法 leetcode 237 删除链表中的节点
Go 算法 leetcode 237 删除链表中的节点题目链接答案题目请编写一个函数,用于 删除单链表中某个特定节点 。在设计函数时需要注意,你无法访问链表的头节点 head ,只能直接访问 要被删除的节点 。题目数据保证需要删除的节点 不是末尾节点 。链接leetcode 237 删除链表中的节点答案/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *L原创 2022-02-26 13:25:16 · 253 阅读 · 0 评论 -
Go 算法 leetcode 086 分隔链表
这里写目录标题题目链接答案题目给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。你应当 保留 两个分区中每个节点的初始相对位置。链接leetcode 086 分隔链表答案/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */func pa原创 2022-02-26 13:17:48 · 279 阅读 · 0 评论 -
Go 算法 leetcode 148 排序链表
Go 算法 leetcode 148 排序链表题目链接答案题目给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。链接leetcode 148 排序链表答案/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */func sortList(head *ListNode) *ListNode { i原创 2022-02-26 10:22:42 · 338 阅读 · 0 评论 -
Go 算法 leetcode 092 反转链表 II
Go 算法 leetcode 092 反转链表 II题目链接答案题目给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。链接leetcode 092 反转链表 II答案/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *原创 2022-02-25 15:26:36 · 396 阅读 · 0 评论 -
Go 算法 leetcode 025 K 个一组翻转链表
这里写目录标题题目链接答案题目给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。进阶:你可以设计一个只使用常数额外空间的算法来解决此问题吗?你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。链接leetcode 025 K 个一组翻转链表答案/** * Definition for singly-linked list. * type ListN原创 2022-02-25 14:20:59 · 181 阅读 · 0 评论 -
Go 算法 leetcode 024 两两交换链表中的节点
Go 算法 leetcode 024 两两交换链表中的节点题目链接答案题目给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。链接leetcode 024 两两交换链表中的节点答案/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */func s原创 2022-02-25 13:48:02 · 244 阅读 · 0 评论 -
Go 算法 leetcode 206 反转链表
Go 算法 leetcode 206 反转链表题目链接答案题目给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。链接leetcode 206 反转链表答案/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */func reverseList(head *ListNode) *ListNode { va原创 2022-02-25 13:46:11 · 242 阅读 · 0 评论 -
Go 算法 leetcode 021 合并两个有序链表
Go 算法 leetcode 021 合并两个有序链表题目链接答案题目将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。链接leetocde 021 合并两个有序链表答案/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */func mergeTwoLists(list1 *Li原创 2022-02-25 13:38:19 · 182 阅读 · 0 评论 -
Go 算法 leetcode 002 两数相加
Go 算法 leetcode 002 两数相加题目链接答案题目给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。链接leetcode 002 两数相加答案/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */func addTwoNumbers(l1 *L原创 2022-02-25 13:35:44 · 114 阅读 · 0 评论 -
Go channel知识总结
Go goroutine什么时候用channel,什么时候用锁或者waitgroup什么是channel简介channel的内部结构创建channel什么是channel简介Go语言的一大核心思想就是“以通信的手段来共享内存”,channel就是其最佳的体现。channel提供一种机制,可以同步两个并发执行的函数,还可以让两个函数通过互相传递特定类型的值来通信channel有两种初始化方式,分别是带缓存的和不带缓存的make(chan int, 0)make(chan int, 10)使用原创 2022-02-24 23:17:41 · 398 阅读 · 0 评论 -
Go 算法 leetcode160 相交链表
Go 算法 leetcode160 相交链表题目答案题目给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。答案/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */func getIntersectionNode(headA, headB原创 2022-02-24 16:25:47 · 713 阅读 · 0 评论 -
Go 算法 leetcode234 回文链表
算法 leetcode234 回文链表题目答案题目给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。答案/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */func isPalindrome(head *ListNode) bool { if head原创 2022-02-24 16:11:39 · 273 阅读 · 0 评论 -
Go 通过IP查询城市
Go 通过IP查询城市条件答案条件现有一堆IP,每个IP有对应的城市,给一个IP,查询到对应的城市答案package mainimport ( "bytes" "encoding/binary" "net")type IpRange struct { Begin uint32 End uint32 City string}type IpData []*IpRangefunc (id *IpData) Length() int { return len(*id)原创 2022-02-24 15:43:07 · 2071 阅读 · 0 评论 -
Go context知识总结
Go context相关知识原创 2022-02-20 23:31:13 · 689 阅读 · 0 评论