Approach
Sliding window or two pointers
For Find if Array Can Be Sorted, the implementation maintains a moving interval and updates only the information that enters or leaves the window.
- Choose the invariant that makes a window valid or useful.
- Advance the right boundary and add the new element.
- Move the left boundary only as needed while maintaining the invariant and updating the answer.
Code notes
- 31 lines of C++ from the credited upstream file 3011.cpp.
- The implementation visibly relies on sequence storage.
- 1 loop block detected.
Complexity
Confirm that neither pointer moves backwards; if so, the scan is usually linear apart from the window’s data-structure operations.
Check the problem constraints before deciding whether this complexity will pass.