算法设计与分析
cyndi2011
无无无
展开
-
编程之美:常见面试题思想方法整理
对于很多精妙的题目,常常在想这些出题的童鞋是怎么想到的,因为这些题目确实能够很深入的考察出一个面试者的逻辑,算法和思维功底。本文章主要是总结自己在做这些面试题和了解相应解法的过程中思考的一些东西,感觉这些东西在很多题目中都出现过,非常值得抽象出来专门理解。 一 双指转载 2017-04-20 17:45:30 · 658 阅读 · 0 评论 -
找出字符串的最长不重复子串,输出长度
这道题有O(N)的算法,具体思路如下:以abcbef这个串为例用一个数据结构pos记录每个元素曾出现的下标,初始为-1从s[0]开始,pos['a'] == -1,说明a还未出现过,令pos['a'] = 0,视为将a"加入当前串",同时长度++同理令pos['b'] = 1,pos['c'] = 2到s[3]时,pos['b'] != -1,说明'b'在前面已经出现过了,原创 2017-04-20 20:02:56 · 1575 阅读 · 0 评论 -
经典算法面试题
1. 时针分针重合几次表面上有60个小格,每小格代表一分钟,时针每分钟走1/12小格,分针每分钟走1小格,从第一次重合到第二次重合分针比时针多走一圈即60小格,所以60/(1-1/12)=720/11每隔720/11分才转载 2017-04-21 11:07:16 · 657 阅读 · 0 评论 -
互联网公司常见面试算法题
1、假设淘宝一天有5亿条成交数据,求出销量最高的100个商品并给出算法的时间复杂度。先用哈希,统计每个商品的成交次数,然后再用在N个数中找出前K大个数的方法找出成交次数最多的前100个商品。优化方法:可以把5亿个数据分组存放,比如放在5000个文件中。这样就可以分别在每个文件的10^6个数据中,用哈希+堆统计每个区域内前100个频率最高的商品,最后求出所有记录中出现频率最高的前10原创 2017-04-21 21:22:54 · 53375 阅读 · 3 评论