标签:面试官 right 暑期 height 华为 2020 left highest size
内容
- 项目
- 学过的专业课程
- 语言相关
- 网络
- 算法
项目
我提到试验室的一些测评项目,说到是涉密的之后,面试官就没再问了。。。不过其实也没有什么技术含量。
课程
提到了数据结构、计算机网络、OS、编译原理、c++这些。
Q:常用的寻路算法?哈夫曼树的原理以及应用?
A:答了dijkstra和prim算法,哈夫曼树通俗的说了一下。
语言相关
因为我比较熟悉c++,面试官本来想问Java问题的,也没继续问。。。
网络
Q:http和https的区别?
A:只准备了TCP/IP那一套。。。没想到问了http,说了https比http更安全。
算法
是一道LeetCode的经典接雨水题,20分钟当场写。做过比较久都忘了,只记得好像左右开始同时向中间遍历,写了一半发现答案不对,面试官给了思路每次找到左右最高柱小的那一个,然后计算当前柱子的雨水,我嘴欠说了一句这样复杂度有点高。。。面试官说肯定可以再优化,先按这个思路写。写完之后讨论了一下就结束了。
后来去LeetCode看到我以前的题解,emmm,思路是对的,当时就是先用数组保存了每个点左右的最大值,再进行遍历。
参考代码:
class Solution {
public:
int trap(vector<int>& height) {
if(height.size()==0)
return 0;
vector<int> highest_left(height.size());
highest_left[0] = 0;
vector<int> highest_right(height.size());
highest_right[highest_right.size() - 1] = 0;
int i = 1;
for (; i < highest_left.size() - 1; i++)
highest_left[i] = max(highest_left[i - 1], height[i - 1]);
for (i = highest_right.size() - 2; i >= 0; i--)
highest_right[i] = max(highest_right[i + 1], height[i + 1]);
int rain = 0;
for (i = 0; i < height.size() - 1; i++)
{
int lower = min(highest_left[i], highest_right[i]);
if (lower > height[i])
rain += lower - height[i];
}
return rain;
}
};
标签:面试官,right,暑期,height,华为,2020,left,highest,size 来源: https://blog.csdn.net/weixin_44826484/article/details/105610450
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。