本篇内容主要讲解“Java怎么找到数组中最大的元素”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java怎么找到数组中最大的元素”吧!
题目: 给定两个数组nums1和nums2,nums1是nums2的一个子集。找到所有nums1中的元素对应nums2位置的下一个更大的元素。如果有这个更大的元素,返回这个元素,如果没有返回-1。
思路:
1.挑出nums2中后一个元素比前一个元素大的一对元素写入关联容器unordered_map中,进行记录;
2.查看nums1中的元素是否存在于unordered_map中,如果有,取出这个值,如果没有返回-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的栈顶的元素小于e元素,将元素写入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; } };
到此,相信大家对“Java怎么找到数组中最大的元素”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
原创文章,作者:745907710,如若转载,请注明出处:https://blog.ytso.com/220260.html