
面试算法题(实际遇到的)
主要是收集实际经历过的和周围朋友面试的时候遇到的算法题
kuc火
这个作者很懒,什么都没留下…
展开
-
Go实现两个Goroutine通信
实现两个goroutine通信,要求如下实现pingpong效果保证程序能任意时长执行,且收到ctrl+c信号之后,全身而退(即保证各个goroutine完整退出)在第三个goroutine中,可随时查找前两个goroutine各自发送了多少个消息,并可设置各自pingpong的频率,如果同时有一万个goroutine过来查找呢符合编码规范的前提下,代码质量控制在两位数答案package mainimport ( "fmt" "os" "os/signal" "syscall"原创 2022-02-28 16:10:23 · 680 阅读 · 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 · 638 阅读 · 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 · 554 阅读 · 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 · 292 阅读 · 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 · 310 阅读 · 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 · 392 阅读 · 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 · 305 阅读 · 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 · 282 阅读 · 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 · 737 阅读 · 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 · 343 阅读 · 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 · 2159 阅读 · 0 评论