• 599. Minimum Index Sum of Two Lists(easy)


    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.
    /*
    暴力的话O(n^2),可以利用hashtable,用空间来换时间。
    */
    class Solution {
    public:
        vector<string> findRestaurant(vector<string>& list1, vector<string>& list2) {
            vector<string> res;
            map<string, int> data;
            int minval = INT_MAX;
            for (int i = 0; i < list1.size(); i++){   // 存入hashtable中
                data.insert(pair<string, int>(list1[i], i));
            }
            for (int i = 0; i < list2.size(); i++){
                if (data.find(list2[i]) != data.end()){
                   if (data[list2[i]] + i < minval){
                       minval = data[list2[i]] + i;
                       res.clear();
                       res.push_back(list2[i]);
                   }else if (data[list2[i]] + i == minval){
                       res.push_back(list2[i]);
                   }
                }
            }
            return res;
        }
    };
  • 相关阅读:
    Java 8 Lambda 表达式
    OSGi 系列(十二)之 Http Service
    OSGi 系列(十三)之 Configuration Admin Service
    OSGi 系列(十四)之 Event Admin Service
    OSGi 系列(十六)之 JDBC Service
    OSGi 系列(十)之 Blueprint
    OSGi 系列(七)之服务的监听、跟踪、声明等
    OSGi 系列(六)之服务的使用
    OSGi 系列(三)之 bundle 事件监听
    OSGi 系列(三)之 bundle 详解
  • 原文地址:https://www.cnblogs.com/simplepaul/p/7838690.html
Copyright © 2020-2023  润新知