Leetcode332

链接:力扣 。

题目:

给定一个机票的字符串二维数组 [from, to],子数组中的两个成员分别表示飞机出发和降落的机场地点,对该行程进行重新规划排序。所有这些机票都属于一个从 JFK(肯尼迪国际机场)出发的先生,所以该行程必须从 JFK 开始。

说明:

  • 如果存在多种有效的行程,请你按字符自然排序返回最小的行程组合。例如,行程 ["JFK", "LGA"] 与 ["JFK", "LGB"] 相比就更小,排序更靠前
  • 所有的机场都用三个大写字母表示(机场代码)。
  • 假定所有机票至少存在一种合理的行程。
  • 所有的机票必须都用一次且只能用一次

示例1:

输入:tickets = [["MUC","LHR"],["JFK","MUC"],["SFO","SJC"],["LHR","SFO"]]
输出:["JFK","MUC","LHR","SFO","SJC"]

示例2:

输入:tickets = [["JFK","SFO"],["JFK","ATL"],["SFO","ATL"],["ATL","JFK"],["ATL","SFO"]]
输出:["JFK","ATL","JFK","SFO","ATL","SFO"]
解释:另一种有效的行程是 ["JFK","SFO","ATL","JFK","ATL","SFO"] ,但是它自然排序更大更靠后。

参考代码:

class Solution {
public:unordered_map<string, map<string, int> > path;vector<string> result;bool dfs(int num) {if (result.size() == num + 1) {return true;}for (pair<const string, int>& p : path[result[result.size() - 1]]) {if (p.second > 0) {result.push_back(p.first);p.second--;if (dfs(num)) {return true;}result.pop_back();p.second++;}}return false;}vector<string> findItinerary(vector<vector<string>>& tickets) {for (const vector<string> &p : tickets) {path[p[0]][p[1]]++;}result.push_back("JFK");dfs(tickets.size());return result;}
};

力扣刷题 DAY_72 回溯相关推荐

  1. 力扣刷题记录-回溯算法相关题目

    首先介绍一下回溯算法 回溯通常在递归函数中体现,本质也是一种暴力的搜索方法,但可以解决一些用for循环暴力解决不了的问题,其应用有: 1.组合问题: 例:1 2 3 4这些数中找出组合为2的组合,有1 ...

  2. 力扣刷题pdf(java版本,内含暗黑版和光明版),都在这里了

    BAT大佬力扣刷题pdf,都在这里了! ​相信很多小伙伴刷题的时候面对力扣上近两千道题目,感觉无从下手! 我找了很久,今天终于让找到了Java版leetcode算法题解笔记,强烈建议先按照本篇介绍pd ...

  3. 教你创建电脑、手机同步的markdown云笔记--力扣刷题力荐!

    开篇先致歉 其他不谈,开篇必须先给各位读者道个歉,年后工作上比较忙,加上最近闲暇的时间都用来在力扣上刷算法题了,导致公众号断更有些严重啊.再加上年后将健身减重提上了日程,时间上就更显的捉襟见肘了. 不 ...

  4. 《剑指Offer》力扣刷题笔记(03-10)

    <剑指Offer>力扣刷题笔记(03-10) 最近确实有点闲,想在进组搬砖之前找点有意义的事干,于是,就开始刷<剑指Offer>.<程序员面试金典>等书上的题目,也 ...

  5. 力扣刷题之二叉树的层序遍历

                                                      Welcome to you, 每日一刷系列 二叉树的层序遍历 二叉树的层序遍历II 二叉树的右视图 ...

  6. 『力扣刷题』5275_找出井字棋的获胜者 解题代码

    LeetCode-cn 力扣刷题 LeetCode-cn力扣刷题目录 165周赛 5275_找出井字棋的获胜者 * 5275. 找出井字棋的获胜者 显示英文描述* 用户通过次数0* 用户尝试次数0* ...

  7. 『力扣刷题』5276_不浪费原料的汉堡制作方案 解题代码

    LeetCode-cn 力扣刷题 LeetCode-cn力扣刷题目录 165周赛 5276_不浪费原料的汉堡制作方案 * 5276. 不浪费原料的汉堡制作方案 显示英文描述* 用户通过次数212* 用 ...

  8. 『力扣刷题』5238_找出给定方程的正整数解 解题代码

    html: embed_local_images: true embed_svg: true offline: true toc: undefined print_background: false ...

  9. 力扣刷题全局变量WA,局部变量AC的问题

    力扣刷题全局变量WA,局部变量AC问题 题目 原因 题目 golang力扣leetcode 1219.黄金矿工 原因 今天在刷题的时候,遇到一个现象,本地跑测试全部通过,一提交就错错错,非常离谱 然后 ...

  10. 力扣刷题-前k个高频元素

    力扣刷题-前k个高频元素 题目: 给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素.你可以按 任意顺序 返回答案. 示例 1: 输入: nums = [1,1,1,2 ...

最新文章

  1. MySQL主主复制搭建教程收集(待实践)
  2. JDK 5.0 注解的使用
  3. 关于ASP.Net的导入导出的[转]
  4. python写水仙花的作文_python自动打开浏览器下载zip,并且提取内容写入excel
  5. asp.net 与 java 2017_[ASP.net教程]C#与JAVA学习感悟
  6. JDK1.5中的线程池(java.util.concurrent.ThreadPoolExecut
  7. python怎么安装xlrd库_Python第三方库xlrd/xlwt的安装与读写Excel表格
  8. 「学习记录」《数值分析》第二章计算实习题(Python语言)
  9. warning: non-static data member initializers only available with -std=c++11 or -std=gnu++11
  10. 初识Quartz之CronTrigger
  11. 安卓逆向及JavaScript实战
  12. 肯德基营销策略案例分析PPT模板
  13. Java完成excel表格导出
  14. 《嵌入式 - 嵌入式大杂烩》详解ROM和RAM
  15. windows安装exe为系统服务
  16. 卡1有信号 卡2无服务器,为什么卡1无服务卡2有
  17. Spring Cloud Loadbalancer
  18. macOS更新10.14.6 更新到macOS Monterey
  19. 二阶边值问题的数值解matlab,《二阶常微分方程边值问题的数值解法》-毕业论文.doc...
  20. 固定资产管理系统能帮助企业做哪些工作?

热门文章

  1. 带你玩转Visual Studio——Property Manager的配制
  2. python语言list语句_Python No.13 之练习(购物车)语句while、for、list等
  3. python开三次方_用python计算三次方根
  4. 制作背景透明图标的小工具(附源代码)
  5. BEC listen and translation exercise 39
  6. 洛谷 P4704 太极剑
  7. PLSQL连接Oracle11g64位操作步骤
  8. eclipse mars2 安装web插件
  9. 01 自然语言处理NLP介绍
  10. 微信小程序——实现下拉框