# Code language: Python classSolution: defmaxChunksToSorted(self, arr: List[int]) -> int: n = len(arr) val_max, val_min = [a for a in arr], [a for a in arr] for i inrange(1, n): val_max[i] = max(val_max[i - 1], arr[i]) for i inrange(n - 2, -1, -1): val_min[i] = min(val_min[i + 1], arr[i]) returnsum(val_max[i] < val_min[i + 1] for i inrange(n - 1)) + 1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
// Code language: Java classSolution { publicintmaxChunksToSorted(int[] arr) { intn= arr.length, val_max = -1, ans = 0; int[] val_min = arr.clone(); for (inti= n - 2; i >= 0; --i) { val_min[i] = Math.min(val_min[i + 1], arr[i]); } for (inti=1; i < n; ++i) { val_max = Math.max(val_max, arr[i - 1]); if (val_max < val_min[i]) ++ans; } return ans + 1; } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
// Code language: C++ classSolution { public: intmaxChunksToSorted(vector<int>& arr){ int n = arr.size(), val_max = -1, ans = 0; int val_min[17]; val_min[n - 1] = arr[n - 1]; for (int i = n - 2; i >= 0; --i) { val_min[i] = min(val_min[i + 1], arr[i]); } for (int i = 1; i < n; ++i) { val_max = max(val_max, arr[i - 1]); if (val_max < val_min[i]) ++ans; } return ans + 1; } };
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
/* Code language: JavaScript */ /** * @param {number[]} arr * @return {number} */ var maxChunksToSorted = function(arr) { const n = arr.length; const val_min = newArray(n).fill(0); val_min[n - 1] = arr[n - 1]; for (let i = n - 2; i >= 0; --i) { val_min[i] = Math.min(val_min[i + 1], arr[i]); } let ans = 0, val_max = -1; for (let i = 1; i < n; ++i) { val_max = Math.max(val_max, arr[i - 1]); if (val_max < val_min[i]) ++ans; } return ans + 1; };
# Code language: Python classSolution: defmaxChunksToSorted(self, arr: List[int]) -> int: returnsum(i == j for i, j inenumerate(accumulate(arr, max)))
1 2 3 4 5 6 7 8 9 10 11
// Code language: Java classSolution { publicintmaxChunksToSorted(int[] arr) { intn= arr.length, val_max = -1, ans = 0; for (inti=0; i < n; ++i) { val_max = Math.max(val_max, arr[i]); if (val_max == i) ++ans; } return ans; } }
1 2 3 4 5 6 7 8 9 10 11 12
// Code language: C++ classSolution { public: intmaxChunksToSorted(vector<int>& arr){ int n = arr.size(), val_max = -1, ans = 0; for (int i = 0; i < n; ++i) { val_max = max(val_max, arr[i]); if (val_max == i) ++ans; } return ans; } };
1 2 3 4 5 6 7 8 9 10 11 12 13 14
/* Code language: JavaScript */ /** * @param {number[]} arr * @return {number} */ var maxChunksToSorted = function(arr) { const n = arr.length; let val_max = -1, ans = 0; for (let i = 0; i < n; ++i) { val_max = Math.max(val_max, arr[i]); if (val_max == i) ++ans; } return ans; };
1 2 3 4 5 6 7 8 9 10 11 12 13
/* Code language: Go */ funcmaxChunksToSorted(arr []int)int { val_max, ans := -1, 0 for i, j := range arr { if val_max < j { val_max = j } if val_max == i { ans++ } } return ans }