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

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

【LeetCode】496. Next Greater Element I

2019-11-10 20:16:31
字體:
供稿:網(wǎng)友

【鏈接】: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. 簡單來說就是兩個序列,求一個結(jié)果序列,第一個序列是第二個序列的子集且元素都unique,第一個序列的每個元素映射到第二個序列的相同的元素,如果第二個序列當(dāng)前元素的右邊出現(xiàn)比此元素大的元素則更新結(jié)果序列,否則更新為-1。 【思路】第二種解法容易想到。第一種解法其實就是多一個search函數(shù),每次查詢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]右邊第一個大的數(shù)! if(j<numsSize) ret.push_back(nums[j]); else ret.push_back(-1); } return ret; }};
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 色网免费观看 | 黄色视屏免费在线观看 | 羞羞羞羞视频 | 中文字幕四区 | 蜜桃视频在线免费播放 | 精品一区在线视频 | 亚洲国产成人久久成人52 | 看免费毛片 | 免费网站看毛片 | 毛片天天看 | 91亚洲免费视频 | 欧美成人小视频 | 国产成人自拍av | 中文字幕免费一区 | 久久国产夫妻视频 | 毛片免费一区二区三区 | 精品一区二区三区四区在线 | 欧美精品黄色 | 欧美成人精品欧美一级乱黄 | 久久精品一区二区三区国产主播 | 视频一区二区三区免费观看 | www.99av| 国产一区二区免费 | a视频在线播放 | asian gaysex| 成年人视频免费看 | 日韩中字幕 | 成人福利在线免费观看 | 伊人久操视频 | 97zyz成人免费视频 | 国产精品久久久久久模特 | 黄色毛片18| 欧美性久久久 | 国产成人高潮免费观看精品 | 久久精品中文字幕一区二区 | 国产精品久久久久久久久久 | 黄色大片在线免费看 | 欧美一级三级在线观看 | 免费国产一区二区视频 | 一级网站片 | 免费毛片在线 |