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

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

599. 两个列表的最小索引总和icon-default.png?t=M7J4https://leetcode.cn/problems/minimum-index-sum-of-two-lists/

难度简单224

假设 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 中的所有字符串都是 唯一 的。

通过次数79,011提交次数138,643

class Solution {
    public String[] findRestaurant(String[] list1, String[] list2) {
        HashMap<String,Integer> map = new HashMap<String,Integer>();
        HashMap<String,Integer> max = new HashMap<String,Integer>();

        List<String> ans1= new ArrayList<String>();
        int min = Integer.MAX_VALUE;

        for(int i=0;i<list1.length;i++)  map.put(list1[i],i);
        for(int j=0;j<list2.length;j++)
        {
            if(map.containsKey(list2[j])==true)
            {
                max.put(list2[j],(map.get(list2[j])+j));
                min  = Math.min(map.get(list2[j])+j,min);
            }
        }

        //遍历
        for (String i : max.keySet()) if(max.get(i)==min) ans1.add(i);

        String[] ans = new String[ans1.size()];
        for (int i = 0; i < ans1.size(); ++i) {
            ans[i] = ans1.get(i);
        }
        return ans;
    }
}

相关文章:

  • Vcenter6.5扩容存储后无法创建虚机处理方法
  • Docker基础-3.本地镜像发布与容器数据卷
  • C#对象序列化
  • Java常用集合总结
  • C++ string容器
  • 锂电池储能系统建模发展现状及其数据驱动建模初步探讨
  • 你的密码安全吗?如何加密才安全?
  • 【Python】-- 列表list(基本语法、常用方法)
  • 8月汽车销量出炉:问界破万,智己破千,理想腰斩!埃安近创新高
  • Python语言及其应用
  • 【OI学习笔记】线性代数-高斯消元法
  • C#进阶09——值类型和引用类型2
  • 后台管理系统的权限以及vue处理权限的思路
  • 从缺货到暴跌,芯片江湖的故事正愈演愈烈
  • 叠氮基 的Diazo Biotin-PEG3-azide 会发生哪些反应了?
  • SegmentFault for Android 3.0 发布
  • Go 语言编译器的 //go: 详解
  • Redis 懒删除(lazy free)简史
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 看域名解析域名安全对SEO的影响
  • 聊聊flink的TableFactory
  • 前端代码风格自动化系列(二)之Commitlint
  • 设计模式(12)迭代器模式(讲解+应用)
  • 使用agvtool更改app version/build
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • HanLP分词命名实体提取详解
  • Java总结 - String - 这篇请使劲喷我
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • ​用户画像从0到100的构建思路
  • "无招胜有招"nbsp;史上最全的互…
  • $refs 、$nextTic、动态组件、name的使用
  • (13)Hive调优——动态分区导致的小文件问题
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (AtCoder Beginner Contest 340) -- F - S = 1 -- 题解
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (二)换源+apt-get基础配置+搜狗拼音
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (离散数学)逻辑连接词
  • (一)UDP基本编程步骤
  • .gitignore文件—git忽略文件
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .NET/C# 项目如何优雅地设置条件编译符号?
  • .netcore 6.0/7.0项目迁移至.netcore 8.0 注意事项
  • .Net下的签名与混淆
  • /etc/X11/xorg.conf 文件被误改后进不了图形化界面
  • ??javascript里的变量问题
  • []利用定点式具实现:文件读取,完成不同进制之间的
  • [Android] 240204批量生成联系人,短信,通话记录的APK
  • [Android]一个简单使用Handler做Timer的例子
  • [Angular] 笔记 21:@ViewChild
  • [C++]高精度 bign (重载运算符版本)
  • [daily][archlinux][game] 几个linux下还不错的游戏
  • [dart学习]第四篇:函数