美团网2014校园招聘笔试题(长沙站)

时间:2013年9月16日


分析:由于A耗时最短,所以每次都安排A和另外一个人一起过桥,回来的时候A一个人回来。至于其他三个人的顺序,可以是任意的,这样总的时间是2+1+5+1+10=19.

Update:

(1)1和2先过去,时间为2
(2)1回来,时间为1 

(3)5和10过去,时间为10 

(4)2回来,时间为2 

(5)1和2再次回来,时间为2,完成。

所以总时间为:2+1+10+2+2=17


详细解释见:赛马问题




剑指offer:面试题7 用两个栈实现队列

#include <iostream>
#include <stack>
using namespace std;

template <class T>
class Queue
{
public:
	Queue()
	{
	}
	~Queue()
	{
	}

	void add(const T& t);
	T remove();
private:
	stack<T> s1;
	stack<T> s2;
};

template <class T>
void Queue<T>::add(const T& t)
{
	s1.push(t);
}

template <class T>
T Queue<T>::remove()
{
	if (s2.size() <= 0)
	{
		while (s1.size() > 0)
		{
			T t = s1.top();
			s2.push(t);
			s1.pop();
		}
	}

	if (s2.size() == 0)
	{
		throw new exception("empty queue");
	}

	T t = s2.top();
	s2.pop();

	return t;

}

int main()
{
	Queue<char> q;

	q.add('A');
	q.add('B');
	q.add('C');
	cout<<q.remove()<<endl;
	cout<<q.remove()<<endl;
	cout<<q.remove()<<endl;

	system("pause");
	return 0;
}


美团网2014校园招聘笔试题(长沙站)_第1张图片

最长公共子序列

你可能感兴趣的:(美团网2014校园招聘笔试题(长沙站))