Go实现两个Goroutine通信 实现两个goroutine通信,要求如下实现pingpong效果保证程序能任意时长执行,且收到ctrl+c信号之后,全身而退(即保证各个goroutine完整退出)在第三个goroutine中,可随时查找前两个goroutine各自发送了多少个消息,并可设置各自pingpong的频率,如果同时有一万个goroutine过来查找呢符合编码规范的前提下,代码质量控制在两位数答案package mainimport ( "fmt" "os" "os/signal" "syscall"
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 {
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 { *
Go 算法 leetcode 237 删除链表中的节点 Go 算法 leetcode 237 删除链表中的节点题目链接答案题目请编写一个函数,用于 删除单链表中某个特定节点 。在设计函数时需要注意,你无法访问链表的头节点 head ,只能直接访问 要被删除的节点 。题目数据保证需要删除的节点 不是末尾节点 。链接leetcode 237 删除链表中的节点答案/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *L
Go 算法 leetcode 086 分隔链表 这里写目录标题题目链接答案题目给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。你应当 保留 两个分区中每个节点的初始相对位置。链接leetcode 086 分隔链表答案/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */func pa
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
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 *
Go 算法 leetcode 025 K 个一组翻转链表 这里写目录标题题目链接答案题目给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。进阶:你可以设计一个只使用常数额外空间的算法来解决此问题吗?你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。链接leetcode 025 K 个一组翻转链表答案/** * Definition for singly-linked list. * type ListN
Go 算法 leetcode 024 两两交换链表中的节点 Go 算法 leetcode 024 两两交换链表中的节点题目链接答案题目给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。链接leetcode 024 两两交换链表中的节点答案/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */func s
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
Go 算法 leetcode 021 合并两个有序链表 Go 算法 leetcode 021 合并两个有序链表题目链接答案题目将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。链接leetocde 021 合并两个有序链表答案/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */func mergeTwoLists(list1 *Li
Go 算法 leetcode 002 两数相加 Go 算法 leetcode 002 两数相加题目链接答案题目给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。链接leetcode 002 两数相加答案/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */func addTwoNumbers(l1 *L
Go channel知识总结 Go goroutine什么时候用channel,什么时候用锁或者waitgroup什么是channel简介channel的内部结构创建channel什么是channel简介Go语言的一大核心思想就是“以通信的手段来共享内存”,channel就是其最佳的体现。channel提供一种机制,可以同步两个并发执行的函数,还可以让两个函数通过互相传递特定类型的值来通信channel有两种初始化方式,分别是带缓存的和不带缓存的make(chan int, 0)make(chan int, 10)使用
Go 算法 leetcode160 相交链表 Go 算法 leetcode160 相交链表题目答案题目给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。答案/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */func getIntersectionNode(headA, headB
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
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)
实现MySQL和Redis数据一致性的方案 实现MySQL和Redis缓存一致的方案延时双删策略操作步骤示例代码异步更新缓存(基于订阅binlog的同步机制)操作步骤示例代码延时双删策略操作步骤示例代码异步更新缓存(基于订阅binlog的同步机制)操作步骤示例代码...
m1 mac安装docker、k8s(成功案例) m1 mac安装docker、k8s(成功案例)一、安装docker二、安装kubernetes一、安装docker1.先要清理旧数据(讲道理这一步重不重要我还真没试过,毕竟在docker desktop中也有clean的选项)rm -rf ~/.kuberm -rf ~/.minikuberm -rf /usr/local/bin/minikuberm -rf ~/Library/Group\ Containers/group.com.docker/pkirm -rf ~/.kube2.