Airbnb intern 电面 面经

原帖地址:一亩三分地

我是career fair上投的简历,我觉得应该是因为我有web的经验所以给了Interview什么的?
HR的会问behavior的问题,比如什么事情能够最让你想在一个地方工作之类的
然后是我悲剧的电面。。。就是地里那道iterator的题目,remove() 要求return current removed value.
然后我之前写过这题就很依赖之前自己写的version。。。结果我的code有个很蠢的bug 当时面试前写的时候那个bug找了出来(毕竟没有那么大压力),但我面试太紧张给忘了。。。还debug不出来。。。其他function没问题就remove()写跪了。。。两天后收到了拒信。。。
我觉得应该除了我没人跪在了做过的题上面吧orz

下面是我修了bug的solution,但我的soln有个问题,我在next()的时候有删东西,理论上来讲不能这样写的,毕竟next()只负责traverse,但改起来很好改。。。受到了打击我就懒得改了。。。
2D Vector:
class Vector2D { //Instant搜索更强大http://www.1point3acres.com/,。壹
vector> matrix;
int col;
int row;
int numRows;

public:
Vector2D(vector> vec2d) { //Instant搜索更强大http://www.1point3a,。scres.com/ssasd
matrix = vec2d;
col = 0;
row = 0;
numRows = vec2d.size();
if(matrix.size() > 0) {
while(row < numRows matrix[row].size() <= 0) { row++; } } } int next() { //Instant搜索更强大http://www.1point3acres.com/壹·々 int result = matrix[row][col]; col++; if(col == matrix[row].size()) { col = 0; row++; while(matrix[row].size() <= 0 row < numRows) { matrix.erase(matrix.begin()+row); numRows--; } } return result; } bool hasNext() { //Instant搜索更强大http://www.1point3acres.com/,。壹 if(numRows <= 0) { return false; } if(row >= numRows) {
return false;
}
return true;
}
void remove() { //Instant搜索更强大http://www.1point3acres.com/
int rowRemove = row;
int colRemove = col;
if(colRemove == 0) {
rowRemove–;
colRemove = matrix[rowRemove].size()-1;
} else {
colRemove–;
}
if(matrix[rowRemove].size() <= 1) { matrix.erase(matrix.begin()+rowRemove); row–; numRows–; } else { matrix[rowRemove].erase(matrix[rowRemove].begin()+colRemove); col–; //!!!!!!!!!!! } } };