Tag: 软件工程师

软件工程师面试技巧之 如何检查数独的有效性

前不久写的这个 软件工程师面试技巧 的系列, 朋友很喜欢, 所以我打算把我毕生所学(哈哈)整理整理分享于大家,望喜欢.另:我觉得:分享就是一种再学习的过程. 去年 Google 的面试题 – 打印消息 软件工程师面试技巧之 使用哈希表降复杂度 给定一个数独,我们要检查是否有效.一个有效的数独横的竖的都只出现1-9的数字各一次,并且9个小宫格里的数字也只出现1-9各一次. 你能快速的告诉我以下是否是个有效的数独么? 我们只需要检查给定的数独中已经填好的数字.最好的方法就是通过 C++中 STL 的 unordered_set (未排序的集合) 来保存已经出的数字.记得检查下一个9宫格或者行或列的时候清空集合便可. // https://justyy.com/archive/4998 class Solution { public: bool isValidSudoku(vector<vector<char>>& …

软件工程师面试技巧之: 使用哈希表降复杂度

最近在刷题, 倒不是为了找工作, 主要是为了练练脑子, 日子过得太舒服, 人脑不动容易变笨. 程序员应该都了解并能熟悉使用 Hash 哈希表, 哈希表的插入和查找时间复杂度是O(1), 空间复杂度是O(N). 我们来看一道简单的面试题: 给定一个数组,找出相差为2的数对,比如: {1, 3, 5, 6, 9} 输出为: (1, 3), (3, 5) 拿到这题的时候 第一感觉是 暴力是否可行? 暴力搜索 复杂度为 O(N2), 大概代码如下: …

微软面试题: 三角形的面积是多少?

据说是一个印度人杀入微软最后的面试, 面试官给了这么一道小学数学几何题: 这哥门也有疑问 可是最后还是坚持 答案 30 (底 X 高 / 2) 不存在 这是个陷井: 这个直角三角形是不存在的. 两个小直角三角形的勾股定理: 两者相加: 简化一下: 最后我们得到: 因为 . 如果 并且 , 把函数 画出来是这样的 最大值是 25 也就是说 c …

你是 研究性的软件工程师么? Research SDE

越来越多的人在学术界里(大学里 比如做博后) 对专业知识和编程研究都很专长. 虽然这个技能组合是非常有价值的, 但是这些人在学术界里缺乏认可. 这意味着没有简单的方法来认可他们的贡献. 英文里有一个专业的工作职位 Research Engineer. 这些研究人员大部分时间都在写代码 但是也做做研究. 有的人边做研究边写程序, 慢慢的发现写程序更有意思. 你是否是一个研究性质的软件工程师? 不管你的现在工作职位是什么 只要你以下的回答大部分是 YES 的话 你就是一个 Research Engineer. 你被请来开发研究用的软件? 你花更多的时间在开发软件而不是进行研究? 你是一个博士后研究员, 但是你主要在软件开发的工作吗? 在你的研究小组里 你是写代码的? 尽管你写的软件很重要 但是经常发表文章里没有你的名字? …

英国 IT公司 电话面试的一些技巧 (程序员)

国外的 IT 公司面试程序一般都是先进行 电话面试. 大公司像 FACEBOOK, GOOGLE 在电话面试中就会进行一些编程题, 算法题的测试. 有的时候会有两轮的电话面试. 第一轮一般是了解情况, 第二轮电话面试会进行数据结构与算法, 编程, 分析解决问题等方面进行测试. 当然会需要上网. 比如GOOGLE会要求你在 GOOGLE DOC上即时编程, 这样面试官能即时在电话的那一头了解到你的编程能力和风格等等. 以下是一些 电话面试的技巧 (程序员/软件工程师), 猎头会有一些简单的问题来进行第一轮的筛选. 电话使用耳机或者免提 这样你的双手就能腾出来码代码 如果问题不清楚 一定要问明白 尽可能的找到最优的解决方法 尽快的找到解决方法 …