1.题目:​​https://leetcode-cn.com/problems/next-greater-element-i/​

2.思路

(1)直接暴力:这道题的核心要理解子集和集合之间的关系,有个相同元素,然后相同元素后,该怎么处理?要想清楚
(2)虽然题目出的有点绕口,但是看各位coder,把题目搞清楚了,补充eg:[1,3,5,2,4][6,5,4,3,2,1,7]给出的答案为[7,7,7,7,7]
(3)虽然有map+stack的方法,但现在还不是很懂

3.代码

https://leetcode-cn.com/problems/next-greater-element-i/comments/
方法1:
class Solution {
public:
vector<int> nextGreaterElement(vector<int>& nums1, vector<int>& nums2) {
vector<int> ans;
for (int i=0;i<nums1.size();i++)
{
int j=0;
for (;j<nums2.size();j++)
{
if (nums1[i]==nums2[j])
{
for (j=j+1;j<nums2.size();j++)
{
if (nums2[j]>nums1[i])
{
ans.push_back(nums2[j]);
break;
}
if (j==nums2.size())
ans.push_back(-1);
}
break;//这个break的意思是,如果找到了,就退出关于j的所有for循环,要从nums1开始新数了
}

}

if (j==nums2.size())//这个代码的意思是,对于nums1 = [4,1,2], nums2 = [1,3,4,2]中,最后的2所要输出-1的代码,我是根据提交后的提示把这块代码加上去的
ans.push_back(-1);
}
return ans;
}
};