题目

假设 Andy 和 Doris 想在晚餐时选择一家餐厅,并且他们都有一个表示最喜爱餐厅的列表,每个餐厅的名字用字符串表示。
你需要帮助他们用最少的索引和找出他们共同喜爱的餐厅。 如果答案不止一个,则输出所有答案并且不考虑顺序。 你可以假设答案总是存在。
示例 1:
输入: list1 = [“Shogun”, “Tapioca Express”, “Burger King”, “KFC”],list2 = [“Piatti”, “The Grill at Torrey Pines”, “Hungry Hunter Steakhouse”, “Shogun”]
输出: [“Shogun”]
解释: 他们唯一共同喜爱的餐厅是“Shogun”。
示例 2:
输入:list1 = [“Shogun”, “Tapioca Express”, “Burger King”, “KFC”],list2 = [“KFC”, “Shogun”, “Burger King”]
输出: [“Shogun”]
解释: 他们共同喜爱且具有最小索引和的餐厅是“Shogun”,它有最小的索引和1(0+1)。
提示:
1 <= list1.length, list2.length <= 1000
1 <= list1[i].length, list2[i].length <= 30
list1[i] 和 list2[i] 由空格 ’ ’ 和英文字母组成。
list1 的所有字符串都是 唯一 的。
list2 中的所有字符串都是 唯一 的。
来源:力扣(LeetCode)

解题思路

  这个题一个是要求给出两个列表中都有的元素,另一个是要计算这些相同元素的下标和。可以先用集合交集来求出两个列表中相同的元素,然后建立字典将字符串作为下标然后下标作为元素方便计算最小下标和。

class Solution:def findRestaurant(self, list1: List[str], list2: List[str]) -> List[str]:d1={}d2={}#调换索引方式for i in range(len(list1)):d1[list1[i]]=ifor i in range(len(list2)):d2[list2[i]]=itemp=list(set(list1)&set(list2)) #求出重复元素if len(temp)==1:return tempMAX=len(list1)+len(list2)t=[]#根据下标和排序for i in temp:t.append([d1[i]+d2[i],i])t.sort()#如果最小下标和只有一个if t[1][0]>t[0][0]:return [t[0][1]]#如果最小下标和有多个for i in range(1,len(t)):if t[i][0]!=t[0][0]:return [j[1] for j in t[0:i]]return temp

LeetCode简单题之两个列表的最小索引总和相关推荐

  1. C#LeetCode刷题之#599-两个列表的最小索引总和​​​​​​​​​​​​​​(Minimum Index Sum of Two Lists)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3802 访问. 假设Andy和Doris想在晚餐时选择一家餐厅,并 ...

  2. Leetcode每日一题 599. 两个列表的最小索引总和 双哈希表的合理使用一题双响~

  3. 【LeetCode】第599题——两个列表的最小索引总和(难度:简单)

    [LeetCode]第599题--两个列表的最小索引总和(难度:简单) 题目描述 解题思路 代码详解 注意点 题目描述 假设Andy和Doris想在晚餐时选择一家餐厅,并且他们都有一个表示最喜爱餐厅的 ...

  4. 【每日一算法】两个列表的最小索引总和

    微信改版,加星标不迷路! 每日一算法-两个列表的最小索引总和 假设Andy和Doris想在晚餐时选择一家餐厅,并且他们都有一个表示最喜爱餐厅的列表,每个餐厅的名字用字符串表示. 你需要帮助他们用最少的 ...

  5. 599.两个列表的最小索引总和

    599.两个列表的最小索引总和 题目描述 假设Andy和Doris想在晚餐时选择一家餐厅,并且他们都有一个表示最喜爱餐厅的列表,每个餐厅的名字用字符串表示. 你需要帮助他们用最少的索引和找出他们共同喜 ...

  6. 599. 两个列表的最小索引总和【C++】

    题目地址: 599. 两个列表的最小索引总和 解题代码: class Solution { public:vector<string> findRestaurant(vector<s ...

  7. 【leetcode 简单】 第一百五十题 两个列表的最小索引总和

    假设Andy和Doris想在晚餐时选择一家餐厅,并且他们都有一个表示最喜爱餐厅的列表,每个餐厅的名字用字符串表示. 你需要帮助他们用最少的索引和找出他们共同喜爱的餐厅. 如果答案不止一个,则输出所有答 ...

  8. LeetCode 599. 两个列表的最小索引总和(哈希map)

    1. 题目 假设Andy和Doris想在晚餐时选择一家餐厅,并且他们都有一个表示最喜爱餐厅的列表,每个餐厅的名字用字符串表示. 你需要帮助他们用最少的索引和找出他们共同喜爱的餐厅. 如果答案不止一个, ...

  9. leetcode 599. 两个列表的最小索引总和(Minimum Index Sum of Two Lists)

    目录 题目描述: 示例 1: 示例 2: 解法: 题目描述: 假设Andy和Doris想在晚餐时选择一家餐厅,并且他们都有一个表示最喜爱餐厅的列表,每个餐厅的名字用字符串表示. 你需要帮助他们用最少的 ...

最新文章

  1. find——文件查找命令 linux一些常用命令
  2. 23.C++类对象的指针为空时,调用成员函数不会挂掉
  3. Array.from()
  4. CountDownLatch 源码分析
  5. js向html文档添加空格,javascript – 如何在HTML中的行之间找到空格?
  6. Android自定义View【实战教程】2⃣️----自定义view那些事
  7. 页面加载出现白页是什么原因造成的
  8. Python模拟登录淘宝
  9. 微博转载-是时候了,也该做个了结了。
  10. 测试linux服务器的网速慢,测试linux服务器的上传下载速度的方法
  11. 空间,是一首精美华丽的诗篇
  12. 师傅!华为eNSP报错啦!别担心,一篇文章教会你
  13. 【第163期】游戏策划做游戏:用UnityBolt实现游泳功能
  14. burp与FoxyProxy抓包
  15. 能解开assetbundle格式资源的UnityStudio工具
  16. Java --- HtmlUnit 简介
  17. ethtool Linux网卡详解
  18. python关于excel格式刷_Excel技巧—开始菜单之格式刷六大功能
  19. 构件CAD平面图绘制
  20. 天堂2MySQL闪退_使用innodb_force_recovery解决MySQL崩溃无法启动的问题

热门文章

  1. locust入门:单机使用locust运行压力测试
  2. 过滤Linux下不同大小的文件,linux查找当前目录下 M/G 大小的文件,删除Linux下指定大小的文件
  3. ssh(Struts+spring+Hibernate)三大框架整合-简述
  4. Go 知识点(11) — goroutine 泄露、设置子协程退出条件
  5. Linux 运维常用命令 find、awk、sed、grep、vi、ps、lsof、rpm
  6. 2022-2028年中国TAC薄膜行业市场全景评估及投资前景规划报告
  7. Apriori算法通俗详解_fpgrowth2_关联分析评估
  8. Python3 try-except、raise和assert解析
  9. 王道考研 计算机网络笔记 第五章:传输层
  10. PyTorch 神经网络