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 nextGreaterElement(vector& nums1, vector& nums2) {
vector ans;
for (int i=0;i {
int j=0;
for (;j {
if (nums1[i]==nums2[j])
{
for (j=j+1;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;
}
};
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.e1idc.net