
面试算法各个攻破
文章平均质量分 59
trayfour
Welcome back gentlemen.
展开
-
《程序员面试代码指南》之栈和队列中的套路
再过几个月要找实习了,有必要花些时间有条理,分专题的好好复习一下。已经在工作的本科室友给我推荐了左程云的《程序员面试代码指南》,由于我们主要都用java,所以觉得这本书还挺不错的,就准备按照上面的框架复习。栈和队列这一章差不多第二遍看了,有些题目觉得有点繁琐,看的比较泛,而且第一次看的那几个题忘得差不多了。首先,栈和队列的基本结构已经特性,我就不提了。 拿出几个一星的题 1 设计一个有getMi原创 2016-12-23 23:02:31 · 497 阅读 · 0 评论 -
《程序员面试代码指南》之约瑟夫环问题
题目:给定一个链表,一个整数m,从表头开始报数,每次报到m就该节点从链表中去掉。 输出最后剩下的节点。普通做法,就是遍历,当计数到m时把该节点删去,然后继续维持环状。时间复杂度O(m*n)在上面的算法中,我们花费了太多时间去删除那些要去掉的节点,因为我们不知道最后会剩下哪个节点。进阶算法:O(n) (1)遍历一遍列表得到列表的长度。 假如列表中有n = 11个node。 从头到尾可以计数成原创 2016-12-30 22:52:38 · 434 阅读 · 0 评论 -
Longest Consecutive Sequence最长连续序列
Given an unsorted array of integers, find the length of the longest consecutive elements sequence.For example, Given [100, 4, 200, 1, 3, 2], The longest consecutive elements sequence is [1, 2, 3, 4].原创 2017-01-13 19:02:24 · 302 阅读 · 0 评论 -
HashMap Java 8 重点内容详解
从原理和细节上搞定HashMap声明:网上讲HashMap的帖子很多,各自有各自着重介绍的地方,个人把自己比较感兴趣的内容和自己的一点点认识写下了。 hashmap是由数组和链表组成的,要插入的元素首先根据哈希函数得到hash值,然后根据规则(取模),得到自己要插入的桶(所谓的桶就是图中的0-15的数组元素)的号。然后排在桶中元素的后面。而要取的时候也一样,先拿到桶号,在沿着这个指针逐个往下找原创 2016-09-09 16:02:42 · 784 阅读 · 0 评论 -
死锁的四个条件
转自 http://www.cnblogs.com/jijiji/p/4855581.html 一. 什么是死锁? 如果一个进程集合里面的每个进程都在等待这个集合中的其他一个进程(包括自身)才能继续往下执行,若无外力他们将无法推进,这种情况就是死锁,处于死锁状态的进程称为死锁进程 二. 死锁产生的原因?1.因竞争资源发生死锁 现象:系统中供多个进程共享的资源的数目不足以满足全部进程的需要时,就会引转载 2017-03-02 13:29:37 · 802 阅读 · 0 评论 -
统计不同时间段在线人数,给定若干(进入,离开)时间对
题目: 有很多个用户 id:每个id后面都有进入到这个网页的时间和离开这个网页的时间。 也就是我有这样的输入:user_id1 , enter_time1, leave_time1 user_id2 , enter_time2, leave_time2 user_id3 , enter_time3, leave_time3面试被问到,当时没想到,回来吃饭的时候想到一个方原创 2017-09-25 20:59:00 · 5908 阅读 · 2 评论 -
判断链表是否有环,如果有返回入环的第一个节点。
如何判断链表有环,这个问题很简单,有环的链表,在遍历的时候会永远在环里转下去。但如何返回入环的第一个节点,当然最简单的思路是用额外的空间记录是否访问过该节点,如果访问过,就立刻停止遍历,并返回。在《程序员代码面试指南》中,作者采用了两个指针的方法,具体如下。 1设置一个slow指针和一个fast指针,开始时,slow和fast指向链表的头,然后slow每次跳一步,fast每次跳两步。 2如果链表原创 2016-12-31 19:05:31 · 1975 阅读 · 1 评论