I started thinking about this problem while trying to find the best way to divide a book reading into $4$ roughly equal sections. I ended up brute-forcing every possible combination, but now I'm wondering if there's a more efficient way to do this and what it might be.
After a bit of wordsmithing, I came up with this way to formally state the problem: Given a strictly increasing list $L$ containing $n$ positive real numbers, what is the most efficient algorithm to find the optimal way to partition the list into $m$ segments minimizing the mean absolute deviation of the list containing the length of each segment; where two subsequent numbers in $L$ define a segment, its length is calculated by subtracting the first and last elements, and segments must start directly after one another? As an example for the indices, for $L=[1,2,5,9,10,12,15,19,21,30,32]$ and $m=3$, a useful partition would be $([1, 12], [12, 21], [21, 32])$, although it should be noted that this is not the optimal partition for that list, it's just an example for indices.
For clarification, this is the more informal way of putting it: What is the most efficient algorithm to find the best way to partition a list into segments that are as equal in length as possible? Please include a proof that your algorithm is the most efficient and its big O time complexity in your answer.
A proof that the question is NP-hard and ergo hard to prove optimality for would also be accepted as an answer. Also, if you can find a more optimal algorithm than the current answer even without a proof, that would also be appreciated.