讨论/算法和数据结构/我认为是同样的代码,为什么下面的就能运行,我的(注释部分)就报错【每日温度】/
我认为是同样的代码,为什么下面的就能运行,我的(注释部分)就报错【每日温度】
        //为什么我的代码就报错,下面的就好使
//         int i = 0, j = 0;
//         stack<int> indexs;
//         vector<int> result(T.size(),0); 
//         for(i = 0; i < T.size(); i++){
//             if(indexs.empty()){
//                 indexs.push(i);
//             }else{
//                 while(T[indexs.top()] < T[i]){
//                     result[indexs.top()] = ++j;
//                     indexs.pop();
//                 }
//                 j = 0;
//                 indexs.push(i);
//             }
//         }
//         return result;
        
        int Tsize = T.size();
        stack<int> tempStack;
        vector<int>resut(Tsize, 0);
        for(int i=0; i<Tsize; i++){
            while (tempStack.size()&&T[tempStack.top()]<T[i]) {
                resut[tempStack.top()] = i-tempStack.top();
                tempStack.pop();
            }
            tempStack.push(i);
        }
        return resut;
展开讨论

[2,1,2,3] => [3,1,1,0]