【LeetCode496】Next Greater Element I

class Solution {
public:
    vector<int> nextGreaterElement(vector<int>& findNums, vector<int>& nums) {
        vector<int> result;
        unordered_map<int, int> list;
        for(int i = 0; i < nums.size(); ++i){
            list.insert(unordered_map<int, int>::value_type(nums[i], i));
        }
        for(int j = 0; j < findNums.size(); ++j){
            unordered_map<int, int>::iterator p = list.find(findNums[j]);
//            if(p != list.end()) //已知必存在
//                int index = p->second;
//            else{
//                result.push_back(-1);
            int index = p->second;
            bool flag = 0;
            for(int k = index+1; k < nums.size(); ++k){
                if(nums[k] > findNums[j]){
                    result.push_back(nums[k]);
                    flag = 1;
                    break;
                }
            }
            if(flag == 0)
                result.push_back(-1);
        }
        return result;
    }
};

一次写成

Runtime: 12 ms, faster than 100.00% of C++ online submissions for Next Greater Element I.

猜你喜欢

转载自blog.csdn.net/weixin_39458342/article/details/88219474
今日推荐