Yes, there are O(n) algorithms for it. The idea of the second algorithm is in 4.1-5.
Some students asked me that why in Python brute-force MaximumSubarray is O(n), so let me clarify:
0. They are not brute-force. (From where did you see that Nick said they are brute-force??????????)
1. They are O(n) because they are different algorithms, not because they are in Python.
2. Most of the operations in an algorithm are independent on programming languages.
3. Because of 2, in most of the cases, we say the time complexity of an algorithms is independent on the programming language implementing the algorithm.
Let me know if you have further questions.