亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

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

496. Next Greater Element I / 503. Next Greater Element II

2019-11-10 18:42:09
字體:
來源:轉載
供稿:網友

Next Greater Element I題目描述代碼實現Next Greater Element II題目描述代碼實現

496. Next Greater Element I

題目描述

ou 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.

代碼實現

很簡單就可以想到O(n^2)的算法:

class Solution {public: vector<int> nextGreaterElement(vector<int>& findNums, vector<int>& nums) { int f_len = findNums.size(); int n_len = nums.size(); vector<int> res; for(int i = 0; i < f_len; i++) { bool flg = false; for(int j = 0; j < n_len; j++) { if(findNums[i] == nums[j]) flg = true; if(flg && nums[j] > findNums[i]) { res.push_back(nums[j]); flg = false; break; } } if(flg) res.push_back(-1); } return res; }};

但是這種方法效率低下。 修改一下算法,我們如果可以找到其中的對應關系。

class Solution {public: vector<int> nextGreaterElement(vector<int>& findNums, vector<int>& nums) { int n_len = nums.size(); vector<int> res, s(n_len); unordered_map<int, int> next; // map: n in nums -> next greater in nums for (int i=0, j=0; j < n_len; s[i++] = nums[j++]) while (i && s[i-1] < nums[j]) next[s[--i]] = nums[j]; for (int n:findNums) res.push_back(next.count(n)? next[n] : -1); return res; }};

使用棧的方法:

class Solution {public: vector<int> nextGreaterElement(vector<int>& findNums, vector<int>& nums) { stack<int> s; unordered_map<int, int> m; for (int n : nums) { while (s.size() && s.top() < n) { m[s.top()] = n; s.pop(); } s.push(n); } vector<int> ans; for (int n : findNums) ans.push_back(m.count(n) ? m[n] : -1); return ans; }};

503. Next Greater Element II

題目描述

Given a circular array (the next element of the last element is the first element of the array), PRint the Next Greater Number for every element. The Next Greater Number of a number x is the first greater number to its traversing-order next in the array, which means you could search circularly to find its next greater number. If it doesn’t exist, output -1 for this number.

Example 1:Input: [1,2,1]Output: [2,-1,2]Explanation: The first 1's next greater number is 2; The number 2 can't find next greater number; The second 1's next greater number needs to search circularly, which is also 2.Note: The length of given array won't exceed 10000.

代碼實現

這里其實最重要的就是解決數字會重復出現的問題。這個時候不能使用map,所以我使用vector+pair的形式來實現可以有重復元素的映射。

class Solution {public: vector<int> nextGreaterElements(vector<int>& nums) { stack<int> stk; int n_len = nums.size(); int c_len = (n_len << 1) - 1; vector<pair<int, int>> vp(n_len); vector<int>res; for(int i = 0; i < c_len; i++) { int rind; int ind = rind = i%n_len, tmp = nums[ind]; while(!stk.empty() && stk.top() < tmp) { ind = (ind == 0)?n_len-1:ind-1; int flg = 0; while(vp[ind].first) ind = (ind - 1 >= 0)?ind-1:n_len-1; vp[ind].second = tmp; vp[ind].first = 1; stk.pop(); } if(!vp[rind].first) stk.push(tmp); } for(auto n:vp) res.push_back(n.first?n.second:-1); return res; }};
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲免费视频观看| 国产精品专区一| 欧美日韩一区二区免费视频| 亚洲成年人在线播放| 国产91精品高潮白浆喷水| 尤物yw午夜国产精品视频| 久久久久久久久久久免费精品| 欧美激情精品久久久久久免费印度| 久久久精品999| 色综合久综合久久综合久鬼88| 国产精品福利无圣光在线一区| 色与欲影视天天看综合网| 国内精品久久久久久久久| 97视频在线看| 国产精品高潮呻吟久久av黑人| 亚洲日本成人网| 亚洲亚裔videos黑人hd| 亚洲国产精品999| 亚洲欧美国产日韩天堂区| 日韩精品在线视频观看| 亚洲综合视频1区| 国产精品99久久久久久白浆小说| 久久精品免费电影| 国产精品亚洲自拍| 欧美日韩加勒比精品一区| 欧美大片第1页| 欧美激情精品久久久久| 91高清视频免费| 欧美亚洲国产日本| 亚洲人成电影在线播放| 91久久精品国产91性色| 亚洲午夜精品久久久久久性色| 日韩av网站大全| 海角国产乱辈乱精品视频| 欧美在线日韩在线| 精品国产自在精品国产浪潮| 国模视频一区二区三区| 在线a欧美视频| 色综合老司机第九色激情| 亚洲成人黄色在线| 国产精品伦子伦免费视频| 一区二区三区四区精品| 青青a在线精品免费观看| 国产精品一区二区三区久久久| 欧美激情一二三| 动漫精品一区二区| 日韩大胆人体377p| 91精品在线播放| 欧美黑人极品猛少妇色xxxxx| 久久亚洲精品一区二区| 亚洲一区中文字幕| 国产精品99导航| 日韩精品在线看| 91精品国产沙发| 国产午夜精品视频免费不卡69堂| 欧美激情一二三| 亚洲天堂第二页| 亚洲天堂第二页| 91超碰caoporn97人人| 国产成人在线一区二区| 国产精品精品久久久久久| 98精品国产高清在线xxxx天堂| 久久精品国产69国产精品亚洲| 久久av在线播放| 国产精品69av| 亚洲人成77777在线观看网| 91久久国产精品| 国产日韩欧美在线播放| 91久久中文字幕| 亚洲欧美日韩国产成人| 国产精品久久在线观看| 成人网址在线观看| 国产精品福利无圣光在线一区| 亚洲国产精品人久久电影| 国产精品久久久久久av福利软件| 美女久久久久久久| 91社区国产高清| 欧美激情综合亚洲一二区| 欧美特黄级在线| 亚洲精品视频二区| www.欧美免费| 中文字幕日韩有码| 国产一区二区av| 欧美日本高清视频| 91成人免费观看网站| 色香阁99久久精品久久久| 亚洲电影天堂av| 97在线视频免费看| 热re91久久精品国99热蜜臀| 色偷偷88888欧美精品久久久| 亚洲一区二区福利| 国产一区二区三区网站| 亚洲黄色在线观看| 日韩美女视频中文字幕| 亚洲女同精品视频| www.国产一区| 亚洲xxxx在线| 国产精品久久久久久久天堂| 久久久91精品国产| 久久久精品国产一区二区| 国产精品白嫩初高中害羞小美女| 一区二区三区在线播放欧美| 亚洲激情视频在线观看| 亚洲国产中文字幕在线观看| 国产日韩欧美在线视频观看| 国内精品小视频| 日韩精品免费一线在线观看| 国产精品99久久99久久久二8| 夜色77av精品影院| 91久久久久久久久| 亚洲国产成人精品女人久久久| 久久精品国产亚洲精品2020| 中文字幕少妇一区二区三区| 久久网福利资源网站| 日韩av电影在线免费播放| 亚洲精品成人久久久| 亚洲国产成人爱av在线播放| 性视频1819p久久| 亚洲色图欧美制服丝袜另类第一页| 国产精品久久久久久久久久新婚| 亚洲福利精品在线| 亚洲国产精品悠悠久久琪琪| 日韩av在线网站| 亚洲人成电影网站| 日韩精品免费在线视频观看| 欧美色视频日本版| 日韩av电影中文字幕| 伊人av综合网| 在线视频中文亚洲| 一本一道久久a久久精品逆3p| 6080yy精品一区二区三区| 国产精品旅馆在线| 2019中文字幕免费视频| 国产噜噜噜噜久久久久久久久| 精品久久久91| 中文字幕不卡av| 川上优av一区二区线观看| 毛片精品免费在线观看| 国产精品久久一区主播| 国产精品免费网站| 青草青草久热精品视频在线网站| 日韩精品在线免费观看| 国产精品一区二区av影院萌芽| 欧美高跟鞋交xxxxxhd| 日韩精品电影网| 日韩a**中文字幕| 国产欧美日韩中文字幕| 久久久久久12| 69av在线视频| 欧美黄色片免费观看| 成人免费福利视频| 国产成人一区二区三区电影| 久久久久国产精品www| 久久免费视频这里只有精品| 日韩av男人的天堂| 亚洲人午夜精品免费| 亚洲欧洲视频在线| 尤物yw午夜国产精品视频| 国产精品私拍pans大尺度在线| 久久香蕉国产线看观看av| 色妞欧美日韩在线| 伦伦影院午夜日韩欧美限制| 国产精品99久久久久久人| 亚洲精品免费在线视频|