一面:
1.bool anagram(string s1, string s2)。判断两个字符串是否由相同的字符组成,允许顺序不同。
A:对s1、s2分别按字符排序,O(N*logN)。再逐一比较字符是否相同,O(N)。
=〉给定字典,求一个字符串的哪些anagram可以构成单词?
A:字典按trie树组织。树中的单词按字符排序,anagram按字符排序,再逐一比较。
2.最大子段和
3.N个加油站构成环,有各自的capacity。从加油站i到i+1,需要的油量为Need[i]。一辆车从哪个加油站出发,可以走完所有加油站。
(在每个加油站,该车可以选择加油或不加油,以及加油的量。只要不超过本加油站的capacity即可)。
A:DP。从加油站1开始,以最大capacity加油。到加油站2时,减去路上消耗的油量,加上加油站2的capacity。依次遍历。若到加油站i时,不能到达加油站i+1,则从加油站1~i出发均不可能走完全程。故从i+1开始遍历。O(N)。
二面:
1.判断单链表是否有环?求环的起点。
2.用两个栈模拟队列的操作。
3.JVM如何进行gc的?
4.虚继承有什么功能?如何实现的?
三面加油!