麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

【LeetCode】496. Next Greater Element I

2019-11-10 20:35:45
字體:
來源:轉載
供稿:網友

【鏈接】:next-greater-element-I 【描述】:You are given two arrays (without duplicates) nums1 and nums2 where nums1’s elements are subset of nums2. Find all the next greater numbers for nums1’s elements in the corresponding places of nums2.

The Next Greater Number of a number x in nums1 is the first greater number to its right in nums2. If it does not exist, output -1 for this number.

Example 1: Input: nums1 = [4,1,2], nums2 = [1,3,4,2]. Output: [-1,3,-1] Explanation: For number 4 in the first array, you cannot find the next greater number for it in the second array, so output -1. For number 1 in the first array, the next greater number for it in the second array is 3. For number 2 in the first array, there is no next greater number for it in the second array, so output -1. Example 2: Input: nums1 = [2,4], nums2 = [1,2,3,4]. Output: [3,-1] Explanation: For number 2 in the first array, the next greater number for it in the second array is 3. For number 4 in the first array, there is no next greater number for it in the second array, so output -1. Note: All elements in nums1 and nums2 are unique. The length of both nums1 and nums2 would not exceed 1000. 簡單來說就是兩個序列,求一個結果序列,第一個序列是第二個序列的子集且元素都unique,第一個序列的每個元素映射到第二個序列的相同的元素,如果第二個序列當前元素的右邊出現比此元素大的元素則更新結果序列,否則更新為-1。 【思路】第二種解法容易想到。第一種解法其實就是多一個search函數,每次查詢findNums的元素,每次更新即可。 【代碼】:

/***********************【LeetCode】496. Next Greater Element IAuthor:herongweiTime:2017/2/8 11:50language:C++http://blog.csdn.net/u013050857***********************/#PRagma comment(linker,"/STACK:102400000,102400000")#include <bits/stdc++.h>#include <iostream>#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;typedef long long LL;const int maxn = 1e5+10;const int maxm = 55;const LL MOD = 999999997;int dir4[4][2]= {{1,0},{0,1},{-1,0},{0,-1}};int dir8[8][2]= {{1,0},{1,1},{0,1},{-1,1},{-1,0},{-1,-1},{0,-1},{1,-1}};inline LL read(){ int c=0,f=1; char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){c=c*10+ch-'0';ch=getchar();} return c*f;}class Solution1{public: vector<int> nextGreaterElement(vector<int>& findNums, vector<int>& nums) { int findNumsSize=findNums.size(); int numsSize=nums.size(); vector<int> ret(findNumsSize); for(int i=0; i<findNumsSize; ++i){ ret[i]=search(nums,findNums[i]); } return ret; } int search(vector<int>& nums,int key) { int i; for(i=0; i<nums.size(); ++i){ if(nums[i]==key) break; } if(i==nums.size()||i==nums.size()-1) return -1; for(;i<nums.size(); ++i) { if(nums[i]>key) return nums[i]; } return -1; }};class Solution2{ public: vector<int> nextGreaterElement(vector<int>& findNums, vector<int>& nums) { int findNumsSize=findNums.size(); int numsSize=nums.size(); unordered_map<int ,int >ans; vector<int> ret; for(int i=0; i<numsSize; ++i){ ans[nums[i]]=i+1; } for(int i=0; i<findNumSize; ++i){ int j=ans[findNums[i]]; while(j<numsSize&&findNums[i]>=nums[j]) ++j;//findNums[i]>=nums[j]右邊第一個大的數! if(j<numsSize) ret.push_back(nums[j]); else ret.push_back(-1); } return ret; }};
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 激情久久一区二区 | 亚州欧美在线 | 国产99久久精品一区二区300 | 久久草在线视频 | h网站在线观看 | 91 在线观看 | 日本a∨精品中文字幕在线 狠狠干精品视频 | 一级毛片免费一级 | 亚洲精久久 | 久久久久久久.comav | 污片在线观看视频 | 国产在线区 | 欧美精品电影一区 | 毛片毛片免费看 | 久久亚洲国产精品 | 国产一区二区国产 | 国产免费一区二区三区视频 | 一区二区免费看 | 免费视频xxxx | 精品不卡 | 中文字幕涩涩久久乱小说 | 久久精品视频8 | 99麻豆久久久国产精品免费 | wwwxxx免费视频| 九一传媒在线观看 | 在线观看免费毛片视频 | 久久在草 | 日本黄色a视频 | 嗯~啊~用力~高h | 黄色大片在线免费观看 | 欧美精品免费一区二区三区 | 牛牛a级毛片在线播放 | 在线播放h | 91久久国产综合精品女同国语 | 久久久综合久久久 | 成人免费久久 | 2021国产精品| 久久久久久久久久久高潮一区二区 | 久久另类视频 | 中文字幕在线免费播放 | 黄色片网站免费 |