问题描述:给定一棵二叉树T和两个节点u和v,找出u和v离根节点最近的公共祖先。 首先我们将这个问题分成三种情况: 情况一: 二叉树是二叉查找树。 这种情况比较简单,将当前节点初始化为根节点,从当前节点开始,不断将当前节点…
分类:链表面试算法
计算单向链表的的长度,有可能有环存在
单向链表的长度定义为链表中的节点个数。如果链表中没有环则用如下算法 链表节点定义如下 struct node { int v; node *next; }; 算法如下 /* 返回链表的长度 链表为空 返回0 */ siz…
【面试笔试算法】Program 5 : 推箱子 (网易游戏笔试题)
时间限制: 10000ms 单点时限: 1000ms 内存限制: 256MB 描述 推箱子是一款经典游戏。如图所示,灰色格子代表不能通过区域,蓝色方格是箱子,黑色圆形代表玩家,含有圆点的格子代表目标点。 规定以下规则: …
2018头条面试算法方向编程题
点击打开链接 P为给定的二维平面整数点集。定义 P 中某点x,如果x满足 P 中任意点都不在 x 的右上方区域内(横纵坐标都大于x),则称其为“最大的”。求出所有“最大的”点的集合。(所有点的横坐标和纵坐标都不重复, 坐…
递归和非递归实现链表反转
链表反转是面试笔试常考题目,直接贴代码。 反转函数如下: //思路为将节点从前到后依次放到表头,最后最后的节点到了最前面,最前面的节点到了最后面 ListNode * ReverseList(ListNode * hea…
leetcode:Pow(x, n) (计算x的n次方) 【面试算法题】
题目:Implement pow(x, n). 题意计算x的n次方,考虑复杂度和n的取值。 n有可能是正数或者负数,分开计算。 用递归的做法讲复杂度降到O(logn)。 class Solution { pub…
2017微软中国社招C++研发岗面试经历(共5面)
写在最前 16年正式毕业,计算机科班出身,ACM打铁选手,此前一直在一家互联网创业公司由实习到转正,从Server到Client,从PC到iOS,经历了很多从0到1的产品,算是创业公司一个不错的历练经历。 今年八月底收到…
刷了两遍LeetCode之后,我拿了9个offer
官方网站:http://leetcode.com/ LeetCode是一个美国的在线编程网站,上面主要收集了各大IT公司的笔试面试题,对于找工作是一个不可多得的好帮手。 LeetCode上面的题目偏基础性,基本上不考察复…
Python试写简单的单链表
简述: 用一下面向对象方法,用Python写一下链表 代码: List.py class Node: next = None data = None def __init__(self,nodeData): self.d…
远程桌面限制用户使用同一个会话
最近远程主机重装系统后,使用远程桌面出现一个问题:同一个用户先后登录远程系统,系统分配了不同会话。当系统分配不同会话时,导致你在一个远程桌面的操作都不见了。像是你运行的一些程序,虽然他们没有被系统关闭,但是你无法对他们进…
【算】链表反转
问题 最近研究算法,遇到的一道很有意思的问题——怎么把一个链表反转?很容易想到一个方法:遍历链表,数组作栈存储路径,元素逐个出栈得到的就是反转后的链表!查找资料发现,有更好的方式实现。 仔细研究后,终于明白了其中的奥妙。…
查找单链表的中点
给定一个单链表如何高效的找到链表的中点,要求算法复杂度O(N),如果读者遇到过这样的问题,那么这个问题就迎刃而解了,验证链表是否有环的问题,使用快慢指针变量链表,同理中点问题也可以使用快慢指针实现,慢指针一次移动一个节点…