主要介绍我在北美求职技术面中遇到的题目以及在准备中刷的面经,本版专门针对算法题,将来也会写专门针对C++和操作系统的。。
NO.1 Valid Parentheses
本题出处是我准备Wepay的电面的面经,来自一亩三分地论坛
本题是Leetcode原题,直接参考我写的blog: Leetcode NO.20
NO.2 3Sum
本题出处也是我准备Wepay的电面面经,来自一亩三分地论坛:跟上题同出自于Wepay 电面
这题我之前也写过,是leetcode原题,可以参考我写的blog: Leetcode NO.15
不过我这版的代码稍微有一点变化,思路一样,都是用双指针包围,代码差的不多,但还是贴上吧:
class Solution {
public:
vector<vector<int>> threeSum(vector<int>& nums) {
vector<vector<int>> res;
if (nums.size() < 3) {
return res;
}
sort(nums.begin(), nums.end());
for (int i = 0; i < nums.size() - 2; ++i) {
if (i != 0 and nums[i] == nums[i-1]) {
continue;
}
int l = i + 1;
int r = nums.size() - 1;
int target = 0 - nums[i];
while (l < r) {
if (l != i + 1 and nums[l] == nums[l-1]) {
++l;
continue;
}
if (nums[l] + nums[r] == target) {
vector<int> tmp(3);
tmp[0] = nums[i];
tmp[1] = nums[l];
tmp[2] = nums[r];
res.push_back(tmp);
++l;
--r;
}
else if (nums[l] + nums[r] < target) {
++l;
}
else {
--r;
}
}
}
return res;
}
};
NO.3 Median of Two Sorted Arrays
本题也是出自Wepay一亩三分地的面经:出自:Wepay 2轮电面 + zenefits 1st + Twilio
难度算是Hard里面比较简单的,不过我依然没有做出来。。。
后来看了看答案,具体思路和代码可以参考我写的blog:NO.4
NO.4 Spiral Matrix
本题是我实际在Wepay电话面试的一道题,也是Leetcode原题,面我的是个国人大哥,英语说的挺容易懂的,人也比较友好。。但是也不知道是信号太烂,还是最近好久没说英语了,状态格外差,之前问Projects的问题,好几句都没有听清,只能草草的说一下,然后考了这道题。。。本题不算难,但是我觉得我电面解题水平很烂,无论是做OA,还是Onsite,脑子都要比平时学习脑子转的快,唯独电面,感觉脑子是完全不转的。。。。虽然最后也做出来了,但是也费了很大劲。。。
NO.5 Valid Palindrome
这是我面ALK Technologies的一道面试题,这家就在普林斯顿,据说薪水不高,但是我还是挺喜欢的。。可惜面试面得好挫。。简历自己写的project都有细节被问住,更别提别的东西了。。。。这道题是leetcode上的原题,比较简单,我面试时更简单,都不需要考虑空格数字啥的。。。这题的思路和代码如下可以参考我写的blog: NO.125
NO.6 String to Integer
这道题是我看sevone面试的面经,出自一亩三分地:SevOne OA
解法还是比较简单的,但是细节比较难,是leetcode的原题,可以参考我的blog: Leetcode NO.8 String to Integer (atoi)