769. 最多能完成排序的块 代码实现(自解) class Solution { private: public: int maxChunksToSorted(vector<int>& arr) { int ma = 0; int i = 0; int ans = 0; for (auto &num : arr) { ma = max(num, ma); if (ma == i++) ans++; } return ans; } }; 768. 最多能完成排序的块 II 代码实现(部分看题解) class Solution { private: public: int maxChunksToSorted(vector<int>& arr) { stack<int> st; for (auto& num : arr) { if (st.empty() || st.top() <= num) { st.emplace(num); } else { int mx = st.top(); st.pop(); while (!st.empty() && st.top() > num) { st.pop(); } st.emplace(mx); } } return st.size(); } };