面试总结——算法篇

最近去今日头条面试,面试的是Java岗位,面试一轮下来,着实认识到自己算法基础和数据结构上的不足,抛开头条喜欢面试算法题目之外,其他大部分一线互联网公司也基本都喜欢在一面、二面技术面中添加简单算法的考验。其实我也觉得这是一种能力的体现,无论有没有真的做过算法,但至少应该想一想如何优化基础设计。
算法的关键可能就在于如何更有效、更快速的实现某种功能。之前面试也基本上没有做过算法相关的复习,几年业务开发下来,连大学时候数据结构最基础的排序和遍历算法都忘得差不多了,即使记得逻辑,手写代码的能力也被IDE工具给惯坏了。其实也不是说IDE的坏处,只是有些基础的能力还是不应该丧失的。
以前只会感叹人家的想法好精妙,确实好用又高效,自己也要做点改变了。
决定刷一下leetCode,就算不为了面试,至少也可以让自己想的更多,想的更灵活。

leetCode是经同学介绍的网站,据说有很大一部分算法面试题都在leetCode的题库中,甚至是完全一样,既然想好要学点什么就要一点点慢慢的啃吧。题目涉及别家网站版权,就不在这里说什么了,本来还想每日一刷让大家帮忙做个监督,估计不太合适了。

为了更好的自己,加油!

用了三天左右空余时间,把SQL简单刷了一遍,归纳一下。
使用到的大部分是left join、inner join、group by、order by、count,偶尔使用了一点limit
大部分操作都是通过关联子表、where语句条件限定、

SQL型

  1. 第几大型:如:第二高薪资,子表、limit等操作实现
  2. 查重复型:如:重复邮箱,group by,count()数据,子表关联查询
  3. 行间比较型:如:比昨天数据大,inner join + 行间特性(如一天一条、Id递增等)+ 数据比较
  4. 分组topN型:如:每班前三名、前三成绩等,inner join + top、count + where条件分组限定 + order by
  5. 行间交换型:更新操作,IF、CASE、WHEN等条件判断

算法型

  1. 数组——两数之和:HashMap便于查找,减小时间复杂度。
  2. 字符串反转:char遍历,栈操作。
  3. 回文字:一分为2,遍历一半。

你可能感兴趣的:(面试总结——算法篇)