您的位置:首页 > 其它

496. Next Greater Element I

2018-01-04 20:34 274 查看






vector<int> nextGreaterElement(vector<int>& findNums, vector<int>& nums) {
vector<int> res;
int pos;
for(int i=0;i<findNums.size();i++){
for(int j=0;j<nums.size();j++){
if(findNums[i]==nums[j]){
pos=j;
break;
}
}
int k=pos+1;
for(;k<nums.size();k++){
if(nums[k]>nums[pos])
{
res.push_back(nums[k]);
break;
}
}
if(k==nums.size())
res.push_back(-1);
}
return res;
}


可用哈希表存储nums值和索引,通过值得出索引值,在从索引值后出开始查找。

vector<int> nextGreaterElement(vector<int>& findNums, vector<int>& nums) {
unordered_map<int,int> m;
vector<int> res;
for(int i=0;i<nums.size();i++)
m[nums[i]]=i;
for(int i=0;i<findNums.size();i++)
{
int pos=m[findNums[i]];
int j=pos+1;
for(;j<nums.size();j++){
if(nums[j]>nums[pos])
{
res.push_back(nums[j]);
break;
}
}
if(j==nums.size())
res.push_back(-1);
}
return res;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: