496. Next Greater Element I

来源:互联网 发布:用友软件erp攻略 编辑:程序博客网 时间:2024/05/18 00:48

这个完全自己写的:

class Solution {public:    vector<int> nextGreaterElement(vector<int>& findNums, vector<int>& nums) {      int  a=findNums.size();      int  b=nums.size();        vector<int> result;        for (int i=0;i<a;i++)        {             for (int j=0;j<b;j++)             {                 if(findNums[i]==nums[j])                 {                   int c=j;                       for (int k=c;k<b;k++)                       {                            if((k!=b-1&& findNums[i]<nums[k]))                            {                                result.push_back(nums[k]);                                  break;                            }                            if(k==b-1)                                                          {                                result.push_back(-1);                               break;                           }                       }                                                                      }                                   }             }                            return result;    }};



一直是【-1;-1;-1】如果去掉

答案run时候是对的,submission时候报错:


找比九大的那个数出错,说明判断语句不对!直接写k=b-1不行。因为开始的如果c=b-1push -1.  k=b-1有可能最后一个大于他

将条件改一下,第一个不要k!=b-1


class Solution {public:    vector<int> nextGreaterElement(vector<int>& findNums, vector<int>& nums) {      int  a=findNums.size();      int  b=nums.size();        vector<int> result;        for (int i=0;i<a;i++)        {             for (int j=0;j<b;j++)             {                 if(findNums[i]==nums[j])                 {                   int c=j;                       for (int k=c;k<b;k++)                       {                            if( findNums[i]<nums[k])                            {                                result.push_back(nums[k]);                                  break;                            }                            if(k==b-1)                                                          {                                result.push_back(-1);                               break;                           }                       }                                                                      }                                   }             }                            return result;    }};