当前位置: 首页 > news >正文

佛山附近做网站的公司泰安高端网站设计建设

佛山附近做网站的公司,泰安高端网站设计建设,seo快速优化文章排名,企业vi设计策划书文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析:本题比较属于困难题目,难点在于完成机票、出发机场和到达机场之间的映射关系,再…

文章目录

  • 一、题目
  • 二、解法
  • 三、完整代码

所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。

一、题目

在这里插入图片描述
在这里插入图片描述

二、解法

  思路分析:本题比较属于困难题目,难点在于完成机票、出发机场和到达机场之间的映射关系,再一个难点就是在所有结果当中选择字典排序靠前的结果。为解决以上问题,本题选择unordered_map<string, map<string, int>>作为映射数组,第一个出发机场是JFK无需排序,但是到达机场需要排序,选择map,它可以根据字典自动的进行字典排序。构造一个unordered_map<string, map<string, int>> targets数组,分别代表 <出发机场, <到达机场, 航班次数>>。关于hash表的有关内容,可以看哈希表理论基础。至于映射关系,unordered_map可以像数组一样用key值进行检索操作。targets[ vec[0] ][ vec[1] ]就进行了两次检索。有关unordered_map的博客资料:C++中的unordered_map用法详解。
  程序如下

class Solution {
private:vector<string> result;vector<string> path;int nticket;unordered_map<string, map<string, int>> targets; // <出发机场, <到达机场, 航班次数>>, map会自动的字典排序(根据相同的出发机场就根据到达机场排序)bool backtracking(int nticket) {if (result.size() == nticket + 1) return true;	// 终止条件为结果数组长度=机票数加一for (pair<const string, int>& target : targets[result[result.size() - 1]]) { // 遍历相同出发机场的到达机场,例如JFK有ATL,SFO两种,依次迭代//cout << target.first << " " << target.second << endl;if (target.second > 0) {	// 记录达到机场是否飞过, 大于0说明没有飞过result.push_back(target.first);	// 处理节点target.second--;if (backtracking(nticket)) return true;	// 递归result.pop_back();				// 回溯target.second++;}}return false;}
public:vector<string> findItinerary(vector<vector<string>>& tickets) {nticket = tickets.size();for (const vector<string>& vec : tickets) {		// 用临时变量vec遍历tickets数组, 例如,第一次遍历会将tickets[0]中的"JFK", "SFO"分别赋值给vec[0]和vec[1]// vec[0]和vec[1]分别代表出发机场和到达机场//cout << vec[0] << " " << vec[1] << endl;targets[ vec[0] ][ vec[1] ]++;	// 记录映射关系,int 初始化时为0,++之后变为1// 查找key值为vec[0]的map value,在从map中查找key值为vec[1]的value, 令其value++}result.push_back("JFK");	// 起始机场backtracking(tickets.size());return result;}
};

三、完整代码

# include <iostream>
# include <string>
# include <vector>
# include <map>
# include <unordered_map>
using namespace std;class Solution {
private:vector<string> result;vector<string> path;int nticket;unordered_map<string, map<string, int>> targets; // <出发机场, <到达机场, 航班次数>>, map会自动的字典排序(根据相同的出发机场就根据到达机场排序)bool backtracking(int nticket) {if (result.size() == nticket + 1) return true;	// 终止条件为结果数组长度=机票数加一for (pair<const string, int>& target : targets[result[result.size() - 1]]) { // 遍历相同出发机场的到达机场,例如JFK有ATL,SFO两种,依次迭代//cout << target.first << " " << target.second << endl;if (target.second > 0) {	// 记录达到机场是否飞过, 大于0说明没有飞过result.push_back(target.first);	// 处理节点target.second--;if (backtracking(nticket)) return true;	// 递归result.pop_back();				// 回溯target.second++;}}return false;}
public:vector<string> findItinerary(vector<vector<string>>& tickets) {nticket = tickets.size();for (const vector<string>& vec : tickets) {		// 用临时变量vec遍历tickets数组, 例如,第一次遍历会将tickets[0]中的"JFK", "SFO"分别赋值给vec[0]和vec[1]// vec[0]和vec[1]分别代表出发机场和到达机场//cout << vec[0] << " " << vec[1] << endl;targets[ vec[0] ][ vec[1] ]++;	// 记录映射关系,int 初始化时为0,++之后变为1// 查找key值为vec[0]的map value,在从map中查找key值为vec[1]的value, 令其value++}result.push_back("JFK");	// 起始机场backtracking(tickets.size());return result;}
};int main() {Solution s1;vector<vector<string>> tickets = { {"JFK", "SFO"}, {"JFK", "ATL"}, {"SFO", "ATL"}, {"ATL", "JFK"}, {"ATL", "SFO"} };vector<string> result = s1.findItinerary(tickets);for (vector<string>::iterator jt = result.begin(); jt != result.end(); jt++) {cout << *jt << " ";}system("pause");return 0;
}

end

http://www.yayakq.cn/news/629407/

相关文章:

  • 网站推广设计做哪些做公司展示网站
  • 讯美深圳网站建设池州做网站
  • 自己做同城购物网站wordpress无法访问站点
  • 外贸网站 免费模板 使用 zencart文化集团网站模板
  • 有没有做旅游攻略的网站软件网站开发平台
  • 本地wordpress 外网访问不了建站优化易下拉系统
  • 中小学门户网站建设广州网站建设与实验
  • 深圳比较好的设计网站公司学校网站建设制度
  • 佳木斯做网站的公司网站建设后的团队总结
  • 成品网站w灬源码1688网页版绿色模板网站
  • wordpress不会发送电子邮件北京公交yy优化
  • 石家庄网站建立wordpress wp_handle_upload
  • 易企网站建设网站建设制作软件
  • seo更新网站内容的注意事项上海公司注册流程及需要的材料
  • 南沙电子商务网站建设三明市住房和城乡建设局网站
  • 手游门户网站模块视频拍摄器材
  • 上海做高端网站制前端做网站的兼职
  • 中建南方建设集团官方网站线上推广app
  • 公司建立自己的网站有什么好处上高县建设局网站
  • 做网站优化竞价区别成都到深圳物流公司
  • 互联网公司起名seo策略有哪些
  • 全国房地产网站购物网站源码下载
  • 网站上的高清动态图怎么做的用手机怎么做免费网站
  • 查域名解析wordpress做seo合适吗
  • 哪些外贸网站比较好wordpress 无法更新
  • 网页制作与网站建设...大连网站设计九必选仟亿科技
  • 做视频网站采集需要多大的空间智慧团建初始密码是多少
  • 有没有帮忙做网站电子商务平台搭建方案
  • 公司微信网站制作wordpress加跳转
  • 手机免费制作网站模板免费下载网站做分站