面试官问我 “A + B” 算法,我懵了
创始人
2024-03-31 19:38:12
0

🎈 作者:Linux猿

🎈 简介:CSDN博客专家🏆,华为云享专家🏆,Linux、C/C++、云计算、物联网、面试、刷题、算法尽管咨询我,关注我,有问题私聊!

🎈 关注专栏: 数据结构和算法成神路【精讲】优质好文持续更新中……🚀🚀🚀

🎈 欢迎小伙伴们点赞👍、收藏⭐、留言💬


🔶🔶🔶🔶🔶 点击观看视频版 🔶🔶🔶🔶🔶

面试被问“A+B”,我懵了


算法在面试中经常遇到,尤其大厂面试,另外今年寒气逼人,不管是大厂还是小厂都发了不少的毕业证,美其名曰:向社会输送人才。

算法难度也是刷新了高度,动不动就 Hard Hard Hard,说不定面试官为了出这一题也看了好久,也是煞费苦心!

 这不相互为难吗?打工人何苦为难打工人呢!

 但是,鲁迅说过:一口吃不了一个胖子,算法需要时长刷、走着刷、吃着刷,有时,白天不会,梦里说不定就解出来了。

那所有面试都问 Hard 难度的算法吗?当然不可能。

但是面试会问 A + B 吗?就是为了让你写出这代码?👇

class Solution {
public:int Add(int num1, int num2) {return num1 + num2;}
};

那这面试有多水,直接进去不就行了!

本篇文章并不是说的表面上的 A + B,这里的 A + B 是代表一类问题,比如:A  和 B 是两个链表,比如:在一个数组中,寻找两个数的和等于 Target 等更深一层次的问题!

那下面来看一下 A 和 B 是两个链表的情况。

一、A + B 之两数之和

1.1 题目描述

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target  的那两个整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。

2 <= nums.length <= 10^4;

-10^9 <= nums[i] <= 10^9;

-10^9 <= target <= 10^9;

1.2 解题思路

1.2.1 方法一

拿到题目,最简单的方法是两层 for 循环,时间复杂度为 O(n^2),代码如下所示:

class Solution
{
public:vector twoSum(vector& nums, int target) {int n = nums.size();for (int i = 0; i < n; ++i) {for (int j = i + 1; j < n; ++j) {if (nums[i] + nums[j] == target) {return {i, j};}}}return {};}
};

鲁迅说过:刷题要精益求精,举一反三。

还有什么更好的方法呢!时间复杂度更低呢!

1.2.2 方法二

在第一种方法中,使用了两层 for 循环,可不可以把第一层 for 循环优化掉!明显不行,那第二层 for 循环呢!可以!

我们可以将遍历过的数存储到一个哈希表中,注意:哈希表存储和查询的可以看做是 O(1),所有,第二层 for 循环改成哈希表处理后,时间复杂度变为 O(1),总的时间复杂度为 O(n)。

代码如下所示:

class Solution
{
public:vector twoSum(vector& nums, int target) {unordered_map hashTable; //哈希表for (int i = 0; i < (int)nums.size(); ++i) { //依次遍历每一个元素if (hashTable.count(target - nums[i])) {//查找 target - nums[i] 是否存在return {i, hashTable[target - nums[i]]};}hashTable[nums[i]] = i;}return {};}
};

在上述代码中,通过将已经遍历过的数存储到 hashTable 中,然后,后面的元素遍历的时候在hashTable 中查找 target - nums[i] 即可。

时间复杂度为 O(n)。

好了,更多的 A + B 问题我们留到下一篇文章中讲解,敬请期待!


🎈 感觉有帮助记得「一键三连支持下哦!有问题可在评论区留言💬,感谢大家的一路支持!🤞猿哥将持续输出「优质文章回馈大家!🤞🌹🌹🌹🌹🌹🌹🤞


相关内容

热门资讯

公公73岁寿宴上,儿媳哽咽感谢... 近日,陕西西安的毛女士在公公73岁寿宴上哽咽致谢,感谢老人主动帮忙带娃,该视频引发热议。 毛女士对记...
巴拿马总统府下令:立即在原址修... 来源:红星新闻 据新华社巴拿马城12月28日电 巴拿马总统府28日发布公告,明确反对拆毁位于巴拿马运...
中指·政策要闻丨住建部部署20... 获取最新政策解读报告 ☞ 戳这里,加入地产/物业/投拓/产城 摘要: 全国住建工作会议召开,部署2...
专业文章丨跨境投资中对东道国法... 【珠海律师、珠海法律咨询、珠海律师事务所、京师律所、京师珠海律所】 (本文转载自北京市京师郑州律师事...
刚见完特朗普,泽连斯基称他将与... 【环球网报道】据美国哥伦比亚广播公司(CBS)等媒体报道,乌克兰总统泽连斯基与美国总统特朗普会晤后表...
亚特兰大0-1小胜国米,赛后评... 在意甲联赛第17轮的较量中,国际米兰在客场以1-0小胜亚特兰大,继续稳居积分榜首位。然而,赛后的评分...
詹姆斯24+5东契奇34+5+... 【搜狐体育战报】北京时间12月29日NBA常规赛,主场作战的湖人以125-101击败国王。艾顿11分...
原创 挑... 高市早苗政府近期对中国发起的一系列挑衅,似乎是一场注定要失败的豪赌。自从她11月7日发表了一些极具争...
最高法:助力完善破产制度,畅通... 最高人民法院12月29日发布7件人民法院惩治逃废债典型案例。据介绍,此次发布的典型案例覆盖面广,扩大...
黑龙江妇幼健康惠民政策再升级 人民网哈尔滨12月29日电 (记者张齐)近年来,黑龙江省卫生健康委员会扎实推进妇女儿童健康保障工作,...