算法题
文章平均质量分 76
Setsuna_Ogiso
这个作者很懒,什么都没留下…
展开
-
手撕算法系列——1. 单链表逆转
这道题是一道经典的算法题了,出没在各大厂小厂的面试题中,也出现在了我去年的考研题中,当时写的很烂,残念。。从考研题说起,当时题目的要求还比较严苛,要求不能借助额外的辅助空间,也就是要求完全通过操作指针来实现链表的逆转...原创 2018-05-22 00:55:35 · 1019 阅读 · 0 评论 -
手撕算法系列——2. top-k问题
这道题也是很经典的面试题了,因为很多互联网公司要处理海量数据,从海量数据中筛选第k大(小)的数据成为了很常见的问题,这道题也因为解法众多而一直受到热议。下面假定问题是要从n个不同大小的数据寻找第k大的元素,即有k-1个元素大于它。(1)解法一——简单粗暴排序 这个解法不用多说了,如果使用基于比较的排序,则平均时间复杂度为O(nlogn),如果n很大的话,这个时间复杂度是难以接受的,而...原创 2018-05-27 00:58:28 · 1882 阅读 · 0 评论 -
手撕算法系列——3. 线段相交问题
这道题也是一道经典的面试题,即分别给出两条线段在平面直角坐标系下的端点坐标,判断这两条线段是否相交(这里的相交定义为有且只有一个公共点)。 这道题如果用传统的解析几何思维,那就是求出这两条线段所在直线的方程,判断是否平行,若不平行,再算出两直线的交点,最后计算交点是否在线段上。这样做思路比较简单,但是实现起来可能会遇到各种各样的问题,例如若线段所在直线倾角等于或接近90°,在计算过程...原创 2018-05-27 18:35:25 · 964 阅读 · 0 评论 -
手撕算法系列——4. 判断单链表是否有环
这道题展开来说,就是给出一个单链表的头结点head: 1)求该链表中是否存在环路; 2)如果存在环路,求出环路的入口和环的长度。 根据单链表的性质,一个结点最多只能有一个后继,故单链表若存在环,则环一定在链表的末尾,且没有尾结点。如果一直沿着链表遍历下去,最后会在环内一直死循环。 根据以上性质,这道题的解法还是用“双指针”的思想,两个指针同时从头结点出发,但是一个指...原创 2018-05-29 00:34:52 · 482 阅读 · 0 评论