v3 time O(n) space O(1) Accepted