溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java怎么找到數(shù)組中最大的元素

發(fā)布時(shí)間:2021-12-18 15:54:26 來(lái)源:億速云 閱讀:271 作者:iii 欄目:大數(shù)據(jù)

本篇內(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í)!

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI