网易首页 > 网易号 > 正文 申请入驻

一道算法题教会我:为什么"查重"要换种问法

0
分享至

周三下午,面试官在白板上写下这行字:"给定一个整数数组,判断是否存在重复元素。"

我盯着题目看了十五秒,脑子里蹦出的第一个念头是:遍历每个数字,再往后扫一遍,看有没有一样的。手写代码,两个for循环嵌套,O(n²)复杂度。这确实是人类直觉——拿起一个数,眼睛往右扫,找到一样的就喊停。


但面试官的表情告诉我,这道题的价值不在这里。


问题的关键不是"这个数后面还有没有",而是"这个数我之前见过没有"。把问法翻转过来,解法就从"扫描未来"变成了"回忆过去"。这时候你需要一个容器,记住所有已经路过的数字——哈希集合(hash set)就是干这个的。查一次O(1),加一次O(1),整个数组扫完最多O(n)。

这个思路的精妙之处在于"循环不变式":走到第i步时,集合里恰好存着从0到i-1的所有元素。如果当前数字已经在集合里,说明它是第二次出现,直接返回true;如果走完都没触发,说明全员唯一。

代码写出来很干净。TypeScript版本:建一个Set,for-of遍历,has()检查,add()收录,遇到重复立即return。Python几乎一样,set的in操作背后也是哈希。时间复杂度O(n),空间换的。

走一遍例子就懂:输入[1,2,3,1],第一步seen是空,1进去;第二步查2,不在,2进去;第三步查3,不在,3进去;第四步查1,在!返回true。全程没有回头扫,也没有重复比较。


有人可能会写一行代码解决:new Set(nums).size !== nums.length。这确实能跑,但面试官不爱看——它必须处理完整数组,哪怕重复出现在第二个位置。循环版可以提前退出,而且显式展示了"我见过你吗"这个核心模式。建议先写循环版,再提一行式作为变体。

这个模式到处都在用。两数之和(Two Sum)里,你存的是值到索引的映射;这里只需要存值本身。更复杂的场景,比如字符串去重、路径判环、缓存实现,底层都是同一套逻辑:用哈希结构回答"我见过你吗"。

那十五秒的直觉错了吗?没错,只是太慢。算法训练的本质,就是把"人眼扫描"翻译成"机器记忆"。这道题教会我的不是某个API怎么用,而是遇到"查重"类问题时,先问自己:能不能把"往后找"换成"往前记"?

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
解压玩具“娜塔莎”引争议,它的危害远超想象!

解压玩具“娜塔莎”引争议,它的危害远超想象!

蓬勃新闻
2026-06-01 13:00:19
紫色风暴来袭:这台1997年手动RAV4,是丰田抛弃的“硬核基因”

紫色风暴来袭:这台1997年手动RAV4,是丰田抛弃的“硬核基因”

热血体育社
2026-06-03 02:14:24
日本鬼子在二战后期倒在饭盒越来越供应不上的几个月里

日本鬼子在二战后期倒在饭盒越来越供应不上的几个月里

超人强动物俱乐部
2026-06-02 17:09:14
穆里尼奥点头,皇马瞄准荷兰国脚邓弗里斯

穆里尼奥点头,皇马瞄准荷兰国脚邓弗里斯

篮坛第一线
2026-06-03 02:11:46
两名外籍乘客在网约车上对着部队大门连续拍照,接下来又要去训练场方向,司机觉得可疑,直接开车把他们交给了部队

两名外籍乘客在网约车上对着部队大门连续拍照,接下来又要去训练场方向,司机觉得可疑,直接开车把他们交给了部队

极目新闻
2026-04-16 08:59:25
黄仁勋公开放话,华为韬定律要比台积电落后10年,结果成国际笑话

黄仁勋公开放话,华为韬定律要比台积电落后10年,结果成国际笑话

胖福的小木屋
2026-05-31 13:26:25
百年联排老别墅被“掏空”!住户紧急撤离,房主获刑,阿婆:谁来赔我们?

百年联排老别墅被“掏空”!住户紧急撤离,房主获刑,阿婆:谁来赔我们?

环球网资讯
2026-06-02 19:39:41
杜阿·利帕低调完婚!与演员男友伦敦市政厅嫁了,相识故事超甜

杜阿·利帕低调完婚!与演员男友伦敦市政厅嫁了,相识故事超甜

浅遇时光
2026-06-01 00:07:19
张嘉益这“陕军班底”,把内娱塑料兄弟情脸都扇肿了

张嘉益这“陕军班底”,把内娱塑料兄弟情脸都扇肿了

阿废冷眼观察所
2026-06-02 00:43:55
风向大变!大陆反“独”公布,郑丽文对美称呼变了,她反对统一?

风向大变!大陆反“独”公布,郑丽文对美称呼变了,她反对统一?

史鹷的生活科普
2026-06-02 11:14:43
09年小将吕孟洋西班牙6场造11球,引顶级豪门关注

09年小将吕孟洋西班牙6场造11球,引顶级豪门关注

生活新鲜市
2026-06-02 15:59:10
硬派越野的科技演变之路,丰田新款 SUV 重塑经典设计风格

硬派越野的科技演变之路,丰田新款 SUV 重塑经典设计风格

味健的汽车
2026-06-01 06:55:18
公然调戏女主播!前CBA外援太恶臭,希望以后别来

公然调戏女主播!前CBA外援太恶臭,希望以后别来

德译洋洋
2026-06-02 12:04:43
重大教学事故!本科论文抽检不合格,追责指导老师

重大教学事故!本科论文抽检不合格,追责指导老师

麦可思研究
2026-06-02 18:19:41
王晶点评《给阿嬷的情书》,一针见血说出影片短板

王晶点评《给阿嬷的情书》,一针见血说出影片短板

阿废冷眼观察所
2026-06-03 00:11:47
绿色吊带裙:那不是衣服,是勇敢的勋章

绿色吊带裙:那不是衣服,是勇敢的勋章

疾跑的小蜗牛
2026-05-18 22:28:23
王平河:圈层内外是江湖(7/11)

王平河:圈层内外是江湖(7/11)

金昔说故事
2026-06-02 19:16:41
挪威身价世界第9 中锋配置世界第1 主场3-1瑞典 世界杯黑马之姿

挪威身价世界第9 中锋配置世界第1 主场3-1瑞典 世界杯黑马之姿

智道足球
2026-06-02 07:58:44
中到大雨!局部暴雨!即将抵达福建

中到大雨!局部暴雨!即将抵达福建

晋江电视台
2026-06-02 16:59:50
天呢!京东GDP超越上海,占据第一位,就问你服不服…

天呢!京东GDP超越上海,占据第一位,就问你服不服…

慧翔百科
2026-06-02 11:37:27
2026-06-03 03:20:49
硅屿手记
硅屿手记
有态度网友ytd
5985文章数 39关注度
往期回顾 全部

科技要闻

烧掉千亿后,美团、阿里、京东谁先止血?

头条要闻

演员魏宗万去世 曾在94版《三国演义》中饰演"司马懿"

头条要闻

演员魏宗万去世 曾在94版《三国演义》中饰演"司马懿"

体育要闻

1米74的业余联赛替补,在英超踢中卫

娱乐要闻

奚梦瑶何猷君补办婚礼超幸福

财经要闻

智元和宇树的“暗战”愈演愈烈

汽车要闻

星途神秘新车轮廓曝光 又一款性能SUV要来了?

态度原创

本地
教育
艺术
数码
手机

本地新闻

用剪纸的方式,打开江苏扬州

教育要闻

“没选上少先队,我女儿疯了”,无理取闹的家长,养不出正常孩子

艺术要闻

抖音砸60个亿,要盖一座“不像医院”的医院?

数码要闻

苹果watchOS 27前瞻:改进心率追踪、引入新表盘、升级Siri

手机要闻

华为畅享100 Pro Max被曝立项:代号叶问,真的要打十个了!

无障碍浏览 进入关怀版