Medium
Design a circular double-ended queue. Implement MyCircularDeque(k) and: insertFront(value), insertLast(value), deleteFront(), deleteLast() (each returns true on success), getFront() and getRear() (return the value or -1 if empty), isEmpty(), and isFull().
Input: operations = ["MyCircularDeque","insertLast","insertLast","insertFront","insertFront","getRear","isFull","deleteLast","insertFront","getFront"], values = [[3],[1],[2],[3],[4],[],[],[],[4],[]] Output: [null,true,true,true,false,2,true,true,true,4]