Split array (0..n-1 permutation) into max chunks so each sorted separately gives sorted array.
Greedy: at each index, if max so far equals index, a valid chunk ends here.
- Track running maximum
- At each index i: if max == i, increment chunk count
- Return chunk count
- Time Complexity: O(n)
- Space Complexity: O(1)