var findItinerary = function(tickets) {let arr=['JFK']let map={}  //在空对象中添加属性和属性值:{'起始城市':[到达的城市]}for(const t of tickets){const [from,to]=tif(!map[from]){  //如果对象中没有from属性map[from]=[]  //则添加该属性,并赋值为空数组[]}map[from].push(to)   //往该属性的数组中添加到达城市}//遍历对象中的属性用  for...in...//对到达城市的列表排序for(const c in map){map[c].sort()}const dd=function(){//机场次数=航班次数+1if(arr.length==tickets.length+1){return true}//如果最后一个城市没有了(map中走过的城市都会被删除,如果删除完了但是不符合上一个判断)//如果最后一个城市没有要到达的地方if(!map[arr[arr.length-1]] || !map[arr[arr.length-1]].length){return false}//遍历最后一个城市中要到达的城市for(let i=0;i<map[arr[arr.length-1]].length;i++){let city=map[arr[arr.length-1]][i]//在map中删除已经走过的航线map[arr[arr.length-1]].splice(i,1)arr.push(city)if(dd()){return true}//回溯arr.pop()map[arr[arr.length-1]].splice(i,0,city)}}dd()return arr
};

力扣332. 重新安排行程(JavaScript)相关推荐

  1. 代码随想录算法训练营第30天 | 51. N皇后 37.解数独 332.重新安排行程 回溯篇小结

    代码随想录系列文章目录 回溯篇 - 棋盘问题 图的dfs 文章目录 代码随想录系列文章目录 51.N皇后 37.解数独 332.重新安排行程 回溯篇小结 51.N皇后 题目链接 这道题的思路是什么样的 ...

  2. 回溯 | 19 332.重新安排行程(hard)**

    本文记录的是刷题过程中的重要概念和笔记.如有侵权,请联系删除. 目录 332.重新安排行程 思路 死循环 记录映射关系 回溯法 c++ 补充:const 总结 332.重新安排行程 力扣题目链接(op ...

  3. 代码随想录刷题|LeetCode 332.重新安排行程 51. N皇后 37. 解数独

    目录 332.重新安排行程 思路 重新安排行程 51. N皇后 思路 N皇后 37. 解数独 思路 解数独         这三道题目都是困难题目,都是根据代码随想录的思路总结书写,慢慢理解,慢慢熟练 ...

  4. 算法训练day24 | php | 332.重新安排行程 , 51. N皇后 , 37. 解数独 ,总结

    一.力扣题332. 重新安排行程 给你一份航线列表 tickets ,其中 tickets[i] = [fromi, toi] 表示飞机出发和降落的机场地点.请你对该行程进行重新规划排序. 所有这些机 ...

  5. 代码随想录30——回溯:332重新安排行程、51N皇后、37解数独

    文章目录 1.332重新安排行程 1.1.题目 1.2.解答 1.2.1.思路 1.2.2.代码 2.51N皇后 2.1.题目 2.2.解答 3.37解数独 3.1.题目 3.2.解答 3.2.1.正 ...

  6. 「leetcode」332.重新安排行程【回溯算法/深搜】详细图解!

    本文 https://github.com/youngyangyang04/leetcode-master 已经收录,里面还有leetcode刷题攻略.各个类型经典题目刷题顺序.思维导图,可以fork ...

  7. LeetCode刷题流程:回溯算法-13.332. 重新安排行程

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

  8. 代码随想录算法训练营第30天| 332.重新安排行程 、51. N皇后 、 37. 解数独

    代码随想录算法训练营第30天| 332.重新安排行程 .51. N皇后 . 37. 解数独 332.重新安排行程 开始想的是将行程进行全排列之后,然后选出一个字典排序最小的.就也是使用的回溯的思路. ...

  9. 代码随想录算法训练营第三十天| 第七章 回溯算法:332.重新安排行程,51.N皇后,37.解数独(python)

    回溯算法总结 332.重新安排行程 讲解链接 class Solution:def __init__(self):self.res = []self.dict = defaultdict(list)d ...

最新文章

  1. 现代计算机三大科学计算,计算机的三大特点是什么?
  2. 2018-3-1 算法学习部分
  3. Core开发组的傲娇造就了今天的以太坊和比特币现金(BCH)
  4. 项目管理和产品管理绉议
  5. SDUT_2012省赛热身赛1
  6. 使用VideoView做个实用的视频播放器
  7. ntp如何确认与服务器偏差_LED电子时钟显示屏如何实现时间同步统一校时?
  8. RuntimeError: Can‘t call numpy() on Variable that requires grad. Use var.detach().numpy()
  9. 滴滴CTO张博:过去的1095天 人工智能发展主要依赖3件事
  10. python 两个列表相互映射_零基础同学,一看就会的Python字典操作指南
  11. 台式机黑苹果Mac OS Big Sur 11.3.1安装指引
  12. win10自动停用打印服务器,win10系统添加打印机总是自动关闭打印服务的技巧介绍...
  13. 打开计算机任务栏有桌面没,如何解决Win7任务栏不显示打开的窗口的问题
  14. 卡诺图化简 之 和之积形式 与 积之和形式
  15. 从苏宁电器到卡巴斯基第17篇:曲折考研路(上)
  16. 2022-2028年中国农作物行业投资战略分析及发展前景研究报告
  17. 华为又招了一名天才少年!
  18. python入门教材 52pj_PJzhang:python基础入门的7个疗程-five
  19. 12个最佳的免费学习编程的游戏网站
  20. 涂鸦LZ201-CN开发板学习笔记(一)

热门文章

  1. php单独输出每个单词,PHP:在特定短语/单词之后搜索文本文件并输出
  2. 一维转二维_Excel – 一维表和二维表相互转换,只要一个“=”搞定
  3. mysql 查看某数据库中所有表的行数,information_schema.tables不准确。count(*)拼接准确。
  4. 使用SQLQuery 在Hibernate中使用sql语句
  5. 基于JAVA+SpringBoot+Mybatis+MYSQL的社区物业管理系统
  6. 基于JAVA+SpringMVC+Mybatis+MYSQL的企业通用门户网站官网
  7. 【转】横向扩展与纵向扩展
  8. JAVA 类加载机制学习笔记
  9. Python 之 %s字符串、%d整型、%f浮点型
  10. C++对txt文本进行读写操作