> How do you know when to clear the window size and start it all over again?
It is a Markov chain; we don't completely clear the window size and start it all over again.
Instead, we keep history of up to a maximum of the window size.
> When the Window Size is Max, the Start and End Pointers will differ by 1.
If we visualise it as a ring.
If we visualize it as linear (the underlying array), if the end pointer is at the end of the array, the start pointer would be at the begin of the array.