zoukankan      html  css  js  c++  java
  • 599. Minimum Index Sum of Two Lists

    Problem:

    Suppose Andy and Doris want to choose a restaurant for dinner, and they both have a list of favorite restaurants represented by strings.

    You need to help them find out their common interest with the least list index sum. If there is a choice tie between answers, output all of them with no order requirement. You could assume there always exists an answer.

    Example 1:

    Input:
    ["Shogun", "Tapioca Express", "Burger King", "KFC"]
    ["Piatti", "The Grill at Torrey Pines", "Hungry Hunter Steakhouse", "Shogun"]
    Output: ["Shogun"]
    Explanation: The only restaurant they both like is "Shogun".
    

    Example 2:

    Input:
    ["Shogun", "Tapioca Express", "Burger King", "KFC"]
    ["KFC", "Shogun", "Burger King"]
    Output: ["Shogun"]
    Explanation: The restaurant they both like and have the least index sum is "Shogun" with index sum 1 (0+1).
    

    Note:

    1. The length of both lists will be in the range of [1, 1000].
    2. The length of strings in both lists will be in the range of [1, 30].
    3. The index is starting from 0 to the list length minus 1.
    4. No duplicates in both lists.

    思路

    Solution (C++):

    vector<string> findRestaurant(vector<string>& list1, vector<string>& list2) {
        int m = list1.size(), n = list2.size();
        int min_index = INT_MAX;
        vector<string> res;        
        unordered_map<string, int> hash;
        
        for (int i = 0; i < m; ++i) {
            hash.emplace(list1[i], i);
        }
        
        for (int i = 0; i < n; ++i) {
            if (hash.count(list2[i]) == 0)  continue;
            
            int sum = i + hash[list2[i]];
            
            if (sum < min_index)  res.clear();
            
            if (sum <= min_index) {
                res.push_back(list2[i]);
                min_index = sum;
            }
        }
        return res;
    }
    

    性能

    Runtime: 120 ms  Memory Usage: 25.8 MB

    思路

    Solution (C++):

    
    

    性能

    Runtime: ms  Memory Usage: MB

    相关链接如下:

    知乎:littledy

    欢迎关注个人微信公众号:小邓杂谈,扫描下方二维码即可

    作者:littledy
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。
  • 相关阅读:
    最不要勉强的,是感情.
    Nginx+phpfastcgi下flush 一下子全部输出问题
    php excel 读取日期问题
    JavaScript年月日和时间戳互转
    mysql 查找除id外其他重复的字段数据
    Thinkphp 下 MySQL group by 接count 获得条数方法
    MySQL性能管理及架构设计 --- 理论篇
    MySQL 导入.sql文件
    Apache ab 压力并发测试工具
    工作生活随笔
  • 原文地址:https://www.cnblogs.com/dysjtu1995/p/12714410.html
Copyright © 2011-2022 走看看