时间:9月16日
分析:由于A耗时最短,所以每次都安排A和另外一个人一起过桥,回来的时候A一个人回来。至于其他三个人的顺序,可以是任意的,这样总的时间是2+1+5+1+10=19.
详细解释见:赛马问题
剑指offer:面试题7 用两个栈实现队列
[cpp]view plaincopy#include<iostream> #include<stack> usingnamespacestd; template<classT> classQueue { public: Queue() { } ~Queue() { } voidadd(constT&t); Tremove(); private: stack<T>s1; stack<T>s2; }; template<classT> voidQueue<T>::add(constT&t) { s1.push(t); } template<classT> TQueue<T>::remove() { if(s2.size()<=0) { while(s1.size()>0) { Tt=s1.top(); s2.push(t); s1.pop(); } } if(s2.size()==0) { thrownewexception("emptyqueue"); } Tt=s2.top(); s2.pop(); returnt; } intmain() { 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"); return0; }
最长公共子序列