您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“Java怎么找到數(shù)組中最大的元素”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Java怎么找到數(shù)組中最大的元素”吧!
題目: 給定兩個(gè)數(shù)組nums1和nums2,nums1是nums2的一個(gè)子集。找到所有nums1中的元素對(duì)應(yīng)nums2位置的下一個(gè)更大的元素。如果有這個(gè)更大的元素,返回這個(gè)元素,如果沒(méi)有返回-1。
思路:
1.挑出nums2中后一個(gè)元素比前一個(gè)元素大的一對(duì)元素寫(xiě)入關(guān)聯(lián)容器unordered_map中,進(jìn)行記錄;
2.查看nums1中的元素是否存在于unordered_map中,如果有,取出這個(gè)值,如果沒(méi)有返回-1。
Language : cpp
class Solution {public:vector<int> nextGreaterElement(vector<int>& findNums, vector<int>& nums) {stack<int> s;unordered_map<int, int> m;//遍歷nums中的元素for (auto e : nums){//堆棧s為空并且堆棧s的棧頂?shù)脑匦∮趀元素,將元素寫(xiě)入map中,key值為棧頂元素,value值為比棧頂元素大的元素while(!s.empty() && s.top() < e){ m[s.top()] = e; s.pop(); } s.push(e); }vector<int> ans;//查找findNums中元素,如果m中存在n,返回m[n]的valuse值,如果不存在返回-1for (auto n : findNums){ ans.push_back(m.count(n) ? m[n] : -1); }return ans; } };
到此,相信大家對(duì)“Java怎么找到數(shù)組中最大的元素”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。