惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
Cisco Blogs
NISL@THU
NISL@THU
G
GRAHAM CLULEY
T
Threatpost
I
Intezer
D
Darknet – Hacking Tools, Hacker News & Cyber Security
P
Proofpoint News Feed
L
Lohrmann on Cybersecurity
Cisco Talos Blog
Cisco Talos Blog
P
Privacy & Cybersecurity Law Blog
Security Latest
Security Latest
P
Palo Alto Networks Blog
L
LINUX DO - 热门话题
Cyberwarzone
Cyberwarzone
AI
AI
Help Net Security
Help Net Security
Forbes - Security
Forbes - Security
T
The Exploit Database - CXSecurity.com
月光博客
月光博客
The GitHub Blog
The GitHub Blog
aimingoo的专栏
aimingoo的专栏
C
CERT Recently Published Vulnerability Notes
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
N
News and Events Feed by Topic
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Scott Helme
Scott Helme
A
About on SuperTechFans
N
Netflix TechBlog - Medium
TaoSecurity Blog
TaoSecurity Blog
V
V2EX
MongoDB | Blog
MongoDB | Blog
AWS News Blog
AWS News Blog
Google DeepMind News
Google DeepMind News
Google Online Security Blog
Google Online Security Blog
O
OpenAI News
Y
Y Combinator Blog
S
Securelist
GbyAI
GbyAI
D
Docker
SecWiki News
SecWiki News
The Hacker News
The Hacker News
有赞技术团队
有赞技术团队
T
Tenable Blog
WordPress大学
WordPress大学
S
SegmentFault 最新的问题
P
Privacy International News Feed
S
Security Affairs
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Hacker News - Newest:
Hacker News - Newest: "LLM"
H
Hackread – Cybersecurity News, Data Breaches, AI and More

LeetCode

二分查找 mid 什么时候要加 1 - V2EX 大家知道哔站或者 Youtube 上有木有出 leetcode 刷题讲解视频的博主? - V2EX leetcode 到达 1000 题了🎉 - V2EX 为什么打开 leetcode 中文网要验证手机号啊,能不验证吗 - V2EX 为什么要刷算法? - V2EX 靓仔们,刷的第一个道 leetcode 题是什么哇 - V2EX Leecode 组队刷题 - V2EX 2018 年之前大家怎么准备的面试? - V2EX 142. 环形链表 II 我这么写为什么有个 case 无法通过 - V2EX 各位都是怎么刷题的 - V2EX leetcode 第 402 题,移除 K 位数字 的疑问 - V2EX 你力扣做几题了?做题数还能衡量水平吗?我做了很多题还是很菜 - V2EX leetcode-cn 年费会员 20%off - V2EX Leetcode 刷题记录 - V2EX LeetCode 有史以来最简单的题目 - V2EX 一直很好奇 leetcode 是怎么判断随机算法的正误的 - V2EX 你们会在意执行用时和内存消耗吗? - V2EX leetcode 502badgateway 了? - V2EX 开心,参加 Weekly Contest 270 不到 1 小时解决了 3 题, Q3 最后几十秒提交一次性通过 - V2EX 刷题,组队 - V2EX 早安刷题 - V2EX leetcode 33 解法求解释 - V2EX 大家刷题,是去中文的 leetcode-cn.com,还是去 leetcode.com?貌似还有一个山寨的 lintcode - V2EX 刷同一类题型真是很不错的方法 - V2EX leetcode 1758 - V2EX 3 个月 了 刷了 51 道题 平均每道题 3 种左右的方法 区间合并 断断续续想了 2 天 执行时间竟然 100% 两次提交 代码没有变动 竟然时间还不一样 一起来刷题 - V2EX 30 天 LeetCode 从 100 题刷到 200 题,再次发帖留念 - V2EX 被今天的 LeetCode 打卡题搞吐了,思路和代码都和题解基本一样,但就是一直超时不过 - V2EX LeetCode 中使用 StringBuilder 连接字符串为什么会比用+号连接快? 刷题很痛苦 需要自己找方法刺激过程 别放弃 - V2EX leetcode 有排名了,每天起来看自己排名上涨也是一种乐趣 认认真真地刷题 提高代码能力和思维能力 - V2EX 刷了 10 题 leetcode,感觉身体被掏空 - V2EX 大家觉得 backtracking 难吗? - V2EX 国内本科学生,想问问大佬们 Leetcode 推荐美国站还是国内站 - V2EX 华为 OD 机试题:给定两个数 0<S, N<100000, S 为数列总和, N 为数列长度,求连续正整数列 LeetCode 2020 感恩节促销开始 - V2EX 求分享 416 的衍生问题的解题思路 LeetCode 有关 树 的题到底怎么套输入 - V2EX 有没有正在刷 LeetCode 的小伙伴们? - V2EX 九章算法 | 字节跳动面试题:用 Rand7()实现 Rand10() - V2EX 长文慎点! Kaggle 比赛的 top2%和金牌到底差距有多大? - V2EX 微软面试真题+面试官改编 leetcode 思路(哈希篇-加更) - V2EX
微软面试真题+面试官改编 leetcode 思路(链表篇) - V2EX
longSwordMan · 2020-06-22 · via LeetCode

在上一篇文章与大家分享了动态规划篇,今天想继续跟大家探讨一下链表篇。

链表是一个非常经典的数据结构,但是也非常 tricky,而且常见的是令人虎躯一震的空间 in place 要求,由于链表的一些特殊性质,经常会作为一个面试考察的重点。

我们先看一个原题: 从已排序的链表中移除重复的单元,如 1->1->2, 返回 1->2. 1->1->2->3->3, 返回 1->2->3

思路很简单,双指针,指针往后找,碰到相同的数值,继续往后,直到第一个不同的数,讲慢指针的 next 指向快指针,得解。关键在于 one pass,一次过,如果搞个哈希表来做那是画蛇添足,空间上不是最优解,而空间的考察其实是链表的重中之重,所以这就是我一直强调的,哈希虽好,但要慎用。

改编题 1: 给定有序链表,如果某元素出现三次以上的,删除该元素,1->1->2->3->3->3, 返回 1->1->2 我们仍然可以双指针,如果数值不同,快慢指针各走一步 遇到相同数值,快指针继续走,同时计数,超过三次就接着往后,碰到新数字后修改慢指针的 next 。

改编题 2: 但如果改成无序的链表呢? 题目变成:给定无序链表,如果某元素出现三次以上的,删除该元素。 这时候我们要头脑冷静地分析,条件虽然变了,但和之前的题目有什么关联和不同? 这时候不是有序数组,因此相同的数不会团在一起,为了能够方便判断是否有 3 个以上的频次,我们需要借助哈希表去统计出现的频次,key 是链表元素的 value,值是频次。那么第二次遍历的时候,我们把链表的 value 当作 key 去哈希表查找,如果对应值大于三,删除元素,问题得解。算法时间复杂度 O ( n ),空间 O ( n )。

改编题 3: 无序链表,但如果要求重复元素的个数不超过自身的 value 呢,比如:1-> 1-> 2->3->2->2 改成:1 - 2 - 3 - 2 还是用哈希,只不过需要厘清几个值的关系,该 map:key 是链表的 value,value 是链表 value 出现的频次。循环的时候,第一次遍历统计频次,第二次遍历,如果 map ( node.val )> node.val ,删一个节点,并且同时 map 中的 node.val 值减一,算法时间复杂度 O ( n ),空间 O ( n )得解。

其他推荐原题: 两链表交叉点问题 链表环问题 链表 merge sort 问题

这几个经典原题原题的改变我之后在我的荔枝微课直播间都会提及。 可以加微信 longswordMAN 进群+听直播,注明 V2EX 的 id 即可。