两次遍历
class Solution {
public:
int partitionDisjoint(vector<int>& nums) {
int size = nums.size();
vector<int> vec(size, 0);
int min = INT_MAX;
for(int i = size - 1; i >= 0; i--){
min = min < nums[i] ? min : nums[i];
vec[i] = min;
}
int max = INT_MIN;
int ans = 0;
for(int i = 0; i < size - 1; ++i){
max = max > nums[i] ? max : nums[i];
if(max <= vec[i + 1]) {ans = i + 1; break;}
}
return ans;
}
};