/**
* @param {number[]} arr
* @return {number}
*/
var maxChunksToSorted = function (arr) {
const sorted = [...arr];
sorted.sort((a, b) => a - b);
let count = 0,
sum1 = 0,
sum2 = 0;
for (let i = 0; i < arr.length; i++) {
sum1 += arr[i];
sum2 += sorted[i];
if (sum1 === sum2) {
count++;
sum1 = sum2 = 0; // 这行不要也可以啦
}
}
return count;
};
C++ Code
class Solution {
public:
int maxChunksToSorted(vector<int>& arr) {
int n = arr.size();
vector<int> sorted = arr;
sort(sorted.begin(), sorted.end());
long int arrSum = 0;
long int sortedSum = 0;
int chunkCount = 0;
for (int i = 0; i < n; i++) {
arrSum += arr[i];
sortedSum += sorted[i];
if (arrSum == sortedSum) chunkCount++;
}
return chunkCount;
}
};