难度:
Hard
题意:
思路:
解法:
class Solution {
public int maxChunksToSorted(int[] arr) {
int[] min = new int[arr.length];
int[] max = new int[arr.length];
max[0] = arr[0];
for (int i = 1;i < arr.length;i++) {
max[i] = Math.max(arr[i], max[i - 1]);
}
min[arr.length - 1] = arr[arr.length - 1];
for (int i = arr.length - 2;i >= 0;i--) {
min[i] = Math.min(arr[i], min[i + 1]);
}
int ret = 1;
for (int i = 0;i + 1 < arr.length;i++) {
if (max[i] <= min[i + 1]) {
ret++;
}
}
return ret;
}
}