2015-10-11 [滴滴]--研发工程师--1~4面
时间:2015-10-11 14:10 ~ 18:20
地点:北京市海淀区东北旺西路8号院 尚东数字山谷 B区1号楼
一、1面
1. 问项目经验
2. 求整型数组中的最大子数组和
int get_max_sum(const vector<int> &nums) { int ans = 0; if (nums.size() == 0) return 0; int cnt_val = nums[0]; if (nums.size() == 1) { ans = ans > cnt_val ? ans : cnt_val; return ans; } for (int i = 1; i < nums.size(); i++) { if (cnt_val > 0) cnt_val += nums[i]; else cnt_val = nums[i]; ans = ans > cnt_val ? ans : cnt_val; } return ans; } int main() { struct TestCase { vector<int> nums; int ret; } test_cases [] = { { { -1, -1, -1 }, 0 }, { { -1, -9, 10, -3, 19 }, 26 }, { { -1, 20, -9, 10, -3, 19 }, 37 }, }; for (int iii = 0; iii < sizeof(test_cases) / sizeof(TestCase); iii++) { TestCase &tc = test_cases[iii]; auto ret = get_max_sum(tc.nums); if ( tc.ret != ret ) { cout << "Case #" << iii << " failed" << endl; cout << "Actual ret=" << ret << endl; return -1; } } return 0; }
二、2面
1. 线程安全
1.1 vector, list 是否是线程安全的?
1.2 对于链表,如何才能能使其线程安全?更高效的方案?
2. 算法题
N*M的矩阵,每个元素的值为0或1,如果两个元素之间有边或角相连,那么这两个点就是互通的,所有互通的1够成一块陆地,问:这个矩阵中有多少陆地?
三、3面
1. vector的存储格式,dequeue的存储格式
2. vector的增长方式。1 2 4 8 16 32 64 为什么?
http://www.zhihu.com/question/36538542
3. 查找链表中是否存在回路。证明之。
四、4面
hr谈未来规划,个人爱好
作者:loverszhaokai
出处:http://www.cnblogs.com/lovers
本文采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。