332. Reconstruct Itinerary
2016-02-21 15:49
495 查看
class Solution { public: vector<string> findItinerary(vector<pair<string, string>> tickets) { map<string, vector<string>> edge; for (int i = 0; i < tickets.size(); ++i) { string from = tickets[i].first; string to = tickets[i].second; edge[from].push_back(to); } for (map<string, vector<string>>::iterator itr = edge.begin(); itr != edge.end(); ++itr) { sort(itr->second.begin(), itr->second.end(), greater<string>()); } vector<string> path; string pos = "JFK"; findEuler(edge, pos, path); reverse(path.begin(), path.end()); return path; } void findEuler(map<string, vector<string>> &edge, string pos, vector<string> &path) { while (!edge[pos].empty()) { string nextPos = edge[pos].back(); edge[pos].pop_back(); findEuler(edge, nextPos, path); } path.push_back(pos); } };
相关文章推荐
- linux下模块编译基本知识和格式
- HDU 1284 钱币兑换问题(母函数)
- WinCE compact 7 VS2008 调试模式启动应用错误
- WebApi身份验证
- Windows下软件调试
- Diksam代码阅读(3)——Diksam的基础结构
- sql查询语句中的乱码 -- 前面加N
- 淘宝穿衣搭配算法大赛有感
- HDU 1284 钱币兑换问题 (完全背包)
- MathType如何插入连乘
- Ubuntu12.04 64bit 下安装VNC server
- HTTP 加密
- Python-numpy逻辑报错:The truth value of an array with more than one element is ambiguous. Us
- Android读写JSON格式的数据之JsonWriter和JsonReader
- WinCE下路径长度
- ElasticSearch--AdMaster使用案例
- Apache的三种工作模式
- favicon.ico文件简介
- Javascript中bind()方法的使用与实现
- Android分析内存泄露