【错题集-编程题】栈和排序(栈 + 贪心)

牛客对于题目连接:栈和排序_牛客题霸_牛客网 (nowcoder.com)


一、分析题目

每次尽可能的先让当前需要的最大值弹出去。

二、代码

// 修改后的代码
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 栈排序
     * @param a int整型vector 描述入栈顺序
     * @return int整型vector
     */
    vector<int> solve(vector<int>& a) {
        int n=a.size();
        vector<int> ret;
        stack<int> st;
        int maxi = n;
        int hash[50010]={0};
        for(int i=0; i<n; i++)
        {
            int x=a[i];
            st.push(x);
            hash[x]=1;
            while(hash[maxi])
                maxi--;
            while(st.size() && st.top()>=maxi)
            {
                ret.push_back(st.top());
                st.pop();
            }
        }
        return ret;
    }
};

三、反思与改进

没有处理好 maxi 的变化,导致下一个数不是比 maxi 小时,输出结果不符合题意。

相关推荐

  1. 编程-,链

    2024-07-13 04:04:02       22 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-13 04:04:02       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-13 04:04:02       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-13 04:04:02       57 阅读
  4. Python语言-面向对象

    2024-07-13 04:04:02       68 阅读

热门阅读

  1. HTTPS和HTTP有哪些区别

    2024-07-13 04:04:02       20 阅读
  2. Qt开发 | Qt创建线程 | Qt并发-QtConcurrent

    2024-07-13 04:04:02       15 阅读
  3. UI图标库推荐网站

    2024-07-13 04:04:02       20 阅读
  4. 从零开始学习cartographer源码之01.gflags与glog

    2024-07-13 04:04:02       15 阅读
  5. [NeetCode 150] Valid Sudoku

    2024-07-13 04:04:02       20 阅读
  6. C#中AsMemory方法

    2024-07-13 04:04:02       22 阅读
  7. js ES6 part3

    2024-07-13 04:04:02       24 阅读