Design Circular Deque

Medium

Topics
ArrayQueueDesign

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().

Example 1

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]

Constraints

  • 1 <= k <= 1000
  • 0 <= value <= 1000
  • At most 2000 calls.
Run ⌘' · Submit ⌘⏎