1
0
mirror of https://gitee.com/coder-xiaomo/leetcode-problemset synced 2025-01-10 18:48:13 +08:00
Code Issues Projects Releases Wiki Activity GitHub Gitee
leetcode-problemset/leetcode-cn/originData/design-circular-deque.json
2023-12-09 19:57:46 +08:00

186 lines
43 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"data": {
"question": {
"questionId": "859",
"questionFrontendId": "641",
"categoryTitle": "Algorithms",
"boundTopicId": 1530,
"title": "Design Circular Deque",
"titleSlug": "design-circular-deque",
"content": "<p>Design your implementation of the circular double-ended queue (deque).</p>\n\n<p>Implement the <code>MyCircularDeque</code> class:</p>\n\n<ul>\n\t<li><code>MyCircularDeque(int k)</code> Initializes the deque with a maximum size of <code>k</code>.</li>\n\t<li><code>boolean insertFront()</code> Adds an item at the front of Deque. Returns <code>true</code> if the operation is successful, or <code>false</code> otherwise.</li>\n\t<li><code>boolean insertLast()</code> Adds an item at the rear of Deque. Returns <code>true</code> if the operation is successful, or <code>false</code> otherwise.</li>\n\t<li><code>boolean deleteFront()</code> Deletes an item from the front of Deque. Returns <code>true</code> if the operation is successful, or <code>false</code> otherwise.</li>\n\t<li><code>boolean deleteLast()</code> Deletes an item from the rear of Deque. Returns <code>true</code> if the operation is successful, or <code>false</code> otherwise.</li>\n\t<li><code>int getFront()</code> Returns the front item from the Deque. Returns <code>-1</code> if the deque is empty.</li>\n\t<li><code>int getRear()</code> Returns the last item from Deque. Returns <code>-1</code> if the deque is empty.</li>\n\t<li><code>boolean isEmpty()</code> Returns <code>true</code> if the deque is empty, or <code>false</code> otherwise.</li>\n\t<li><code>boolean isFull()</code> Returns <code>true</code> if the deque is full, or <code>false</code> otherwise.</li>\n</ul>\n\n<p>&nbsp;</p>\n<p><strong class=\"example\">Example 1:</strong></p>\n\n<pre>\n<strong>Input</strong>\n[&quot;MyCircularDeque&quot;, &quot;insertLast&quot;, &quot;insertLast&quot;, &quot;insertFront&quot;, &quot;insertFront&quot;, &quot;getRear&quot;, &quot;isFull&quot;, &quot;deleteLast&quot;, &quot;insertFront&quot;, &quot;getFront&quot;]\n[[3], [1], [2], [3], [4], [], [], [], [4], []]\n<strong>Output</strong>\n[null, true, true, true, false, 2, true, true, true, 4]\n\n<strong>Explanation</strong>\nMyCircularDeque myCircularDeque = new MyCircularDeque(3);\nmyCircularDeque.insertLast(1); // return True\nmyCircularDeque.insertLast(2); // return True\nmyCircularDeque.insertFront(3); // return True\nmyCircularDeque.insertFront(4); // return False, the queue is full.\nmyCircularDeque.getRear(); // return 2\nmyCircularDeque.isFull(); // return True\nmyCircularDeque.deleteLast(); // return True\nmyCircularDeque.insertFront(4); // return True\nmyCircularDeque.getFront(); // return 4\n</pre>\n\n<p>&nbsp;</p>\n<p><strong>Constraints:</strong></p>\n\n<ul>\n\t<li><code>1 &lt;= k &lt;= 1000</code></li>\n\t<li><code>0 &lt;= value &lt;= 1000</code></li>\n\t<li>At most <code>2000</code> calls will be made to <code>insertFront</code>, <code>insertLast</code>, <code>deleteFront</code>, <code>deleteLast</code>, <code>getFront</code>, <code>getRear</code>, <code>isEmpty</code>, <code>isFull</code>.</li>\n</ul>\n",
"translatedTitle": "设计循环双端队列",
"translatedContent": "<p>设计实现双端队列。</p>\n\n<p>实现 <code>MyCircularDeque</code> 类:</p>\n\n<ul>\n\t<li><code>MyCircularDeque(int k)</code>&nbsp;:构造函数,双端队列最大为 <code>k</code> 。</li>\n\t<li><code>boolean insertFront()</code>:将一个元素添加到双端队列头部。 如果操作成功返回 <code>true</code>&nbsp;,否则返回 <code>false</code> 。</li>\n\t<li><code>boolean insertLast()</code>&nbsp;:将一个元素添加到双端队列尾部。如果操作成功返回 <code>true</code>&nbsp;,否则返回 <code>false</code> 。</li>\n\t<li><code>boolean deleteFront()</code>&nbsp;:从双端队列头部删除一个元素。 如果操作成功返回 <code>true</code>&nbsp;,否则返回 <code>false</code> 。</li>\n\t<li><code>boolean deleteLast()</code>&nbsp;:从双端队列尾部删除一个元素。如果操作成功返回 <code>true</code>&nbsp;,否则返回 <code>false</code> 。</li>\n\t<li><code>int getFront()</code>&nbsp;):从双端队列头部获得一个元素。如果双端队列为空,返回 <code>-1</code>&nbsp;。</li>\n\t<li><code>int getRear()</code>&nbsp;:获得双端队列的最后一个元素。&nbsp;如果双端队列为空,返回 <code>-1</code> 。</li>\n\t<li><code>boolean isEmpty()</code>&nbsp;:若双端队列为空,则返回&nbsp;<code>true</code>&nbsp;,否则返回 <code>false</code> &nbsp;。</li>\n\t<li><code>boolean isFull()</code>&nbsp;:若双端队列满了,则返回&nbsp;<code>true</code>&nbsp;,否则返回 <code>false</code> 。</li>\n</ul>\n\n<p>&nbsp;</p>\n\n<p><strong>示例 1</strong></p>\n\n<pre>\n<strong>输入</strong>\n[\"MyCircularDeque\", \"insertLast\", \"insertLast\", \"insertFront\", \"insertFront\", \"getRear\", \"isFull\", \"deleteLast\", \"insertFront\", \"getFront\"]\n[[3], [1], [2], [3], [4], [], [], [], [4], []]\n<strong>输出</strong>\n[null, true, true, true, false, 2, true, true, true, 4]\n\n<strong>解释</strong>\nMyCircularDeque circularDeque = new MycircularDeque(3); // 设置容量大小为3\ncircularDeque.insertLast(1);\t\t\t // 返回 true\ncircularDeque.insertLast(2);\t\t\t // 返回 true\ncircularDeque.insertFront(3);\t\t\t // 返回 true\ncircularDeque.insertFront(4);\t\t\t // 已经满了,返回 false\ncircularDeque.getRear(); \t\t\t\t// 返回 2\ncircularDeque.isFull();\t\t\t\t // 返回 true\ncircularDeque.deleteLast();\t\t\t // 返回 true\ncircularDeque.insertFront(4);\t\t\t // 返回 true\ncircularDeque.getFront();\t\t\t\t// 返回 4\n&nbsp;</pre>\n\n<p>&nbsp;</p>\n\n<p><strong>提示:</strong></p>\n\n<ul>\n\t<li><code>1 &lt;= k &lt;= 1000</code></li>\n\t<li><code>0 &lt;= value &lt;= 1000</code></li>\n\t<li><code>insertFront</code>,&nbsp;<code>insertLast</code>,&nbsp;<code>deleteFront</code>,&nbsp;<code>deleteLast</code>,&nbsp;<code>getFront</code>,&nbsp;<code>getRear</code>,&nbsp;<code>isEmpty</code>,&nbsp;<code>isFull</code>&nbsp; 调用次数不大于&nbsp;<code>2000</code>&nbsp;次</li>\n</ul>\n",
"isPaidOnly": false,
"difficulty": "Medium",
"likes": 225,
"dislikes": 0,
"isLiked": null,
"similarQuestions": "[{\"title\": \"Design Circular Queue\", \"titleSlug\": \"design-circular-queue\", \"difficulty\": \"Medium\", \"translatedTitle\": \"\\u8bbe\\u8ba1\\u5faa\\u73af\\u961f\\u5217\", \"isPaidOnly\": false}]",
"contributors": [],
"langToValidPlayground": "{\"cpp\": false, \"java\": false, \"python\": false, \"python3\": false, \"mysql\": false, \"mssql\": false, \"oraclesql\": false, \"c\": false, \"csharp\": false, \"javascript\": false, \"typescript\": false, \"bash\": false, \"php\": false, \"swift\": false, \"kotlin\": false, \"dart\": false, \"golang\": false, \"ruby\": false, \"scala\": false, \"html\": false, \"pythonml\": false, \"rust\": false, \"racket\": false, \"erlang\": false, \"elixir\": false, \"pythondata\": false, \"react\": false, \"vanillajs\": false, \"postgresql\": false}",
"topicTags": [
{
"name": "Design",
"slug": "design",
"translatedName": "设计",
"__typename": "TopicTagNode"
},
{
"name": "Queue",
"slug": "queue",
"translatedName": "队列",
"__typename": "TopicTagNode"
},
{
"name": "Array",
"slug": "array",
"translatedName": "数组",
"__typename": "TopicTagNode"
},
{
"name": "Linked List",
"slug": "linked-list",
"translatedName": "链表",
"__typename": "TopicTagNode"
}
],
"companyTagStats": null,
"codeSnippets": [
{
"lang": "C++",
"langSlug": "cpp",
"code": "class MyCircularDeque {\npublic:\n MyCircularDeque(int k) {\n\n }\n \n bool insertFront(int value) {\n\n }\n \n bool insertLast(int value) {\n\n }\n \n bool deleteFront() {\n\n }\n \n bool deleteLast() {\n\n }\n \n int getFront() {\n\n }\n \n int getRear() {\n\n }\n \n bool isEmpty() {\n\n }\n \n bool isFull() {\n\n }\n};\n\n/**\n * Your MyCircularDeque object will be instantiated and called as such:\n * MyCircularDeque* obj = new MyCircularDeque(k);\n * bool param_1 = obj->insertFront(value);\n * bool param_2 = obj->insertLast(value);\n * bool param_3 = obj->deleteFront();\n * bool param_4 = obj->deleteLast();\n * int param_5 = obj->getFront();\n * int param_6 = obj->getRear();\n * bool param_7 = obj->isEmpty();\n * bool param_8 = obj->isFull();\n */",
"__typename": "CodeSnippetNode"
},
{
"lang": "Java",
"langSlug": "java",
"code": "class MyCircularDeque {\n\n public MyCircularDeque(int k) {\n\n }\n \n public boolean insertFront(int value) {\n\n }\n \n public boolean insertLast(int value) {\n\n }\n \n public boolean deleteFront() {\n\n }\n \n public boolean deleteLast() {\n\n }\n \n public int getFront() {\n\n }\n \n public int getRear() {\n\n }\n \n public boolean isEmpty() {\n\n }\n \n public boolean isFull() {\n\n }\n}\n\n/**\n * Your MyCircularDeque object will be instantiated and called as such:\n * MyCircularDeque obj = new MyCircularDeque(k);\n * boolean param_1 = obj.insertFront(value);\n * boolean param_2 = obj.insertLast(value);\n * boolean param_3 = obj.deleteFront();\n * boolean param_4 = obj.deleteLast();\n * int param_5 = obj.getFront();\n * int param_6 = obj.getRear();\n * boolean param_7 = obj.isEmpty();\n * boolean param_8 = obj.isFull();\n */",
"__typename": "CodeSnippetNode"
},
{
"lang": "Python",
"langSlug": "python",
"code": "class MyCircularDeque(object):\n\n def __init__(self, k):\n \"\"\"\n :type k: int\n \"\"\"\n\n\n def insertFront(self, value):\n \"\"\"\n :type value: int\n :rtype: bool\n \"\"\"\n\n\n def insertLast(self, value):\n \"\"\"\n :type value: int\n :rtype: bool\n \"\"\"\n\n\n def deleteFront(self):\n \"\"\"\n :rtype: bool\n \"\"\"\n\n\n def deleteLast(self):\n \"\"\"\n :rtype: bool\n \"\"\"\n\n\n def getFront(self):\n \"\"\"\n :rtype: int\n \"\"\"\n\n\n def getRear(self):\n \"\"\"\n :rtype: int\n \"\"\"\n\n\n def isEmpty(self):\n \"\"\"\n :rtype: bool\n \"\"\"\n\n\n def isFull(self):\n \"\"\"\n :rtype: bool\n \"\"\"\n\n\n\n# Your MyCircularDeque object will be instantiated and called as such:\n# obj = MyCircularDeque(k)\n# param_1 = obj.insertFront(value)\n# param_2 = obj.insertLast(value)\n# param_3 = obj.deleteFront()\n# param_4 = obj.deleteLast()\n# param_5 = obj.getFront()\n# param_6 = obj.getRear()\n# param_7 = obj.isEmpty()\n# param_8 = obj.isFull()",
"__typename": "CodeSnippetNode"
},
{
"lang": "Python3",
"langSlug": "python3",
"code": "class MyCircularDeque:\n\n def __init__(self, k: int):\n\n\n def insertFront(self, value: int) -> bool:\n\n\n def insertLast(self, value: int) -> bool:\n\n\n def deleteFront(self) -> bool:\n\n\n def deleteLast(self) -> bool:\n\n\n def getFront(self) -> int:\n\n\n def getRear(self) -> int:\n\n\n def isEmpty(self) -> bool:\n\n\n def isFull(self) -> bool:\n\n\n\n# Your MyCircularDeque object will be instantiated and called as such:\n# obj = MyCircularDeque(k)\n# param_1 = obj.insertFront(value)\n# param_2 = obj.insertLast(value)\n# param_3 = obj.deleteFront()\n# param_4 = obj.deleteLast()\n# param_5 = obj.getFront()\n# param_6 = obj.getRear()\n# param_7 = obj.isEmpty()\n# param_8 = obj.isFull()",
"__typename": "CodeSnippetNode"
},
{
"lang": "C",
"langSlug": "c",
"code": "\n\n\ntypedef struct {\n \n} MyCircularDeque;\n\n\nMyCircularDeque* myCircularDequeCreate(int k) {\n \n}\n\nbool myCircularDequeInsertFront(MyCircularDeque* obj, int value) {\n \n}\n\nbool myCircularDequeInsertLast(MyCircularDeque* obj, int value) {\n \n}\n\nbool myCircularDequeDeleteFront(MyCircularDeque* obj) {\n \n}\n\nbool myCircularDequeDeleteLast(MyCircularDeque* obj) {\n \n}\n\nint myCircularDequeGetFront(MyCircularDeque* obj) {\n \n}\n\nint myCircularDequeGetRear(MyCircularDeque* obj) {\n \n}\n\nbool myCircularDequeIsEmpty(MyCircularDeque* obj) {\n \n}\n\nbool myCircularDequeIsFull(MyCircularDeque* obj) {\n \n}\n\nvoid myCircularDequeFree(MyCircularDeque* obj) {\n \n}\n\n/**\n * Your MyCircularDeque struct will be instantiated and called as such:\n * MyCircularDeque* obj = myCircularDequeCreate(k);\n * bool param_1 = myCircularDequeInsertFront(obj, value);\n \n * bool param_2 = myCircularDequeInsertLast(obj, value);\n \n * bool param_3 = myCircularDequeDeleteFront(obj);\n \n * bool param_4 = myCircularDequeDeleteLast(obj);\n \n * int param_5 = myCircularDequeGetFront(obj);\n \n * int param_6 = myCircularDequeGetRear(obj);\n \n * bool param_7 = myCircularDequeIsEmpty(obj);\n \n * bool param_8 = myCircularDequeIsFull(obj);\n \n * myCircularDequeFree(obj);\n*/",
"__typename": "CodeSnippetNode"
},
{
"lang": "C#",
"langSlug": "csharp",
"code": "public class MyCircularDeque {\n\n public MyCircularDeque(int k) {\n\n }\n \n public bool InsertFront(int value) {\n\n }\n \n public bool InsertLast(int value) {\n\n }\n \n public bool DeleteFront() {\n\n }\n \n public bool DeleteLast() {\n\n }\n \n public int GetFront() {\n\n }\n \n public int GetRear() {\n\n }\n \n public bool IsEmpty() {\n\n }\n \n public bool IsFull() {\n\n }\n}\n\n/**\n * Your MyCircularDeque object will be instantiated and called as such:\n * MyCircularDeque obj = new MyCircularDeque(k);\n * bool param_1 = obj.InsertFront(value);\n * bool param_2 = obj.InsertLast(value);\n * bool param_3 = obj.DeleteFront();\n * bool param_4 = obj.DeleteLast();\n * int param_5 = obj.GetFront();\n * int param_6 = obj.GetRear();\n * bool param_7 = obj.IsEmpty();\n * bool param_8 = obj.IsFull();\n */",
"__typename": "CodeSnippetNode"
},
{
"lang": "JavaScript",
"langSlug": "javascript",
"code": "/**\n * @param {number} k\n */\nvar MyCircularDeque = function(k) {\n\n};\n\n/** \n * @param {number} value\n * @return {boolean}\n */\nMyCircularDeque.prototype.insertFront = function(value) {\n\n};\n\n/** \n * @param {number} value\n * @return {boolean}\n */\nMyCircularDeque.prototype.insertLast = function(value) {\n\n};\n\n/**\n * @return {boolean}\n */\nMyCircularDeque.prototype.deleteFront = function() {\n\n};\n\n/**\n * @return {boolean}\n */\nMyCircularDeque.prototype.deleteLast = function() {\n\n};\n\n/**\n * @return {number}\n */\nMyCircularDeque.prototype.getFront = function() {\n\n};\n\n/**\n * @return {number}\n */\nMyCircularDeque.prototype.getRear = function() {\n\n};\n\n/**\n * @return {boolean}\n */\nMyCircularDeque.prototype.isEmpty = function() {\n\n};\n\n/**\n * @return {boolean}\n */\nMyCircularDeque.prototype.isFull = function() {\n\n};\n\n/**\n * Your MyCircularDeque object will be instantiated and called as such:\n * var obj = new MyCircularDeque(k)\n * var param_1 = obj.insertFront(value)\n * var param_2 = obj.insertLast(value)\n * var param_3 = obj.deleteFront()\n * var param_4 = obj.deleteLast()\n * var param_5 = obj.getFront()\n * var param_6 = obj.getRear()\n * var param_7 = obj.isEmpty()\n * var param_8 = obj.isFull()\n */",
"__typename": "CodeSnippetNode"
},
{
"lang": "TypeScript",
"langSlug": "typescript",
"code": "class MyCircularDeque {\n constructor(k: number) {\n \n }\n\n insertFront(value: number): boolean {\n \n }\n\n insertLast(value: number): boolean {\n \n }\n\n deleteFront(): boolean {\n \n }\n\n deleteLast(): boolean {\n \n }\n\n getFront(): number {\n \n }\n\n getRear(): number {\n \n }\n\n isEmpty(): boolean {\n \n }\n\n isFull(): boolean {\n \n }\n}\n\n/**\n * Your MyCircularDeque object will be instantiated and called as such:\n * var obj = new MyCircularDeque(k)\n * var param_1 = obj.insertFront(value)\n * var param_2 = obj.insertLast(value)\n * var param_3 = obj.deleteFront()\n * var param_4 = obj.deleteLast()\n * var param_5 = obj.getFront()\n * var param_6 = obj.getRear()\n * var param_7 = obj.isEmpty()\n * var param_8 = obj.isFull()\n */",
"__typename": "CodeSnippetNode"
},
{
"lang": "PHP",
"langSlug": "php",
"code": "class MyCircularDeque {\n /**\n * @param Integer $k\n */\n function __construct($k) {\n\n }\n\n /**\n * @param Integer $value\n * @return Boolean\n */\n function insertFront($value) {\n\n }\n\n /**\n * @param Integer $value\n * @return Boolean\n */\n function insertLast($value) {\n\n }\n\n /**\n * @return Boolean\n */\n function deleteFront() {\n\n }\n\n /**\n * @return Boolean\n */\n function deleteLast() {\n\n }\n\n /**\n * @return Integer\n */\n function getFront() {\n\n }\n\n /**\n * @return Integer\n */\n function getRear() {\n\n }\n\n /**\n * @return Boolean\n */\n function isEmpty() {\n\n }\n\n /**\n * @return Boolean\n */\n function isFull() {\n\n }\n}\n\n/**\n * Your MyCircularDeque object will be instantiated and called as such:\n * $obj = MyCircularDeque($k);\n * $ret_1 = $obj->insertFront($value);\n * $ret_2 = $obj->insertLast($value);\n * $ret_3 = $obj->deleteFront();\n * $ret_4 = $obj->deleteLast();\n * $ret_5 = $obj->getFront();\n * $ret_6 = $obj->getRear();\n * $ret_7 = $obj->isEmpty();\n * $ret_8 = $obj->isFull();\n */",
"__typename": "CodeSnippetNode"
},
{
"lang": "Swift",
"langSlug": "swift",
"code": "\nclass MyCircularDeque {\n\n init(_ k: Int) {\n\n }\n \n func insertFront(_ value: Int) -> Bool {\n\n }\n \n func insertLast(_ value: Int) -> Bool {\n\n }\n \n func deleteFront() -> Bool {\n\n }\n \n func deleteLast() -> Bool {\n\n }\n \n func getFront() -> Int {\n\n }\n \n func getRear() -> Int {\n\n }\n \n func isEmpty() -> Bool {\n\n }\n \n func isFull() -> Bool {\n\n }\n}\n\n/**\n * Your MyCircularDeque object will be instantiated and called as such:\n * let obj = MyCircularDeque(k)\n * let ret_1: Bool = obj.insertFront(value)\n * let ret_2: Bool = obj.insertLast(value)\n * let ret_3: Bool = obj.deleteFront()\n * let ret_4: Bool = obj.deleteLast()\n * let ret_5: Int = obj.getFront()\n * let ret_6: Int = obj.getRear()\n * let ret_7: Bool = obj.isEmpty()\n * let ret_8: Bool = obj.isFull()\n */",
"__typename": "CodeSnippetNode"
},
{
"lang": "Kotlin",
"langSlug": "kotlin",
"code": "class MyCircularDeque(k: Int) {\n\n fun insertFront(value: Int): Boolean {\n\n }\n\n fun insertLast(value: Int): Boolean {\n\n }\n\n fun deleteFront(): Boolean {\n\n }\n\n fun deleteLast(): Boolean {\n\n }\n\n fun getFront(): Int {\n\n }\n\n fun getRear(): Int {\n\n }\n\n fun isEmpty(): Boolean {\n\n }\n\n fun isFull(): Boolean {\n\n }\n\n}\n\n/**\n * Your MyCircularDeque object will be instantiated and called as such:\n * var obj = MyCircularDeque(k)\n * var param_1 = obj.insertFront(value)\n * var param_2 = obj.insertLast(value)\n * var param_3 = obj.deleteFront()\n * var param_4 = obj.deleteLast()\n * var param_5 = obj.getFront()\n * var param_6 = obj.getRear()\n * var param_7 = obj.isEmpty()\n * var param_8 = obj.isFull()\n */",
"__typename": "CodeSnippetNode"
},
{
"lang": "Dart",
"langSlug": "dart",
"code": "class MyCircularDeque {\n\n MyCircularDeque(int k) {\n \n }\n \n bool insertFront(int value) {\n \n }\n \n bool insertLast(int value) {\n \n }\n \n bool deleteFront() {\n \n }\n \n bool deleteLast() {\n \n }\n \n int getFront() {\n \n }\n \n int getRear() {\n \n }\n \n bool isEmpty() {\n \n }\n \n bool isFull() {\n \n }\n}\n\n/**\n * Your MyCircularDeque object will be instantiated and called as such:\n * MyCircularDeque obj = MyCircularDeque(k);\n * bool param1 = obj.insertFront(value);\n * bool param2 = obj.insertLast(value);\n * bool param3 = obj.deleteFront();\n * bool param4 = obj.deleteLast();\n * int param5 = obj.getFront();\n * int param6 = obj.getRear();\n * bool param7 = obj.isEmpty();\n * bool param8 = obj.isFull();\n */",
"__typename": "CodeSnippetNode"
},
{
"lang": "Go",
"langSlug": "golang",
"code": "type MyCircularDeque struct {\n\n}\n\n\nfunc Constructor(k int) MyCircularDeque {\n\n}\n\n\nfunc (this *MyCircularDeque) InsertFront(value int) bool {\n\n}\n\n\nfunc (this *MyCircularDeque) InsertLast(value int) bool {\n\n}\n\n\nfunc (this *MyCircularDeque) DeleteFront() bool {\n\n}\n\n\nfunc (this *MyCircularDeque) DeleteLast() bool {\n\n}\n\n\nfunc (this *MyCircularDeque) GetFront() int {\n\n}\n\n\nfunc (this *MyCircularDeque) GetRear() int {\n\n}\n\n\nfunc (this *MyCircularDeque) IsEmpty() bool {\n\n}\n\n\nfunc (this *MyCircularDeque) IsFull() bool {\n\n}\n\n\n/**\n * Your MyCircularDeque object will be instantiated and called as such:\n * obj := Constructor(k);\n * param_1 := obj.InsertFront(value);\n * param_2 := obj.InsertLast(value);\n * param_3 := obj.DeleteFront();\n * param_4 := obj.DeleteLast();\n * param_5 := obj.GetFront();\n * param_6 := obj.GetRear();\n * param_7 := obj.IsEmpty();\n * param_8 := obj.IsFull();\n */",
"__typename": "CodeSnippetNode"
},
{
"lang": "Ruby",
"langSlug": "ruby",
"code": "class MyCircularDeque\n\n=begin\n :type k: Integer\n=end\n def initialize(k)\n\n end\n\n\n=begin\n :type value: Integer\n :rtype: Boolean\n=end\n def insert_front(value)\n\n end\n\n\n=begin\n :type value: Integer\n :rtype: Boolean\n=end\n def insert_last(value)\n\n end\n\n\n=begin\n :rtype: Boolean\n=end\n def delete_front()\n\n end\n\n\n=begin\n :rtype: Boolean\n=end\n def delete_last()\n\n end\n\n\n=begin\n :rtype: Integer\n=end\n def get_front()\n\n end\n\n\n=begin\n :rtype: Integer\n=end\n def get_rear()\n\n end\n\n\n=begin\n :rtype: Boolean\n=end\n def is_empty()\n\n end\n\n\n=begin\n :rtype: Boolean\n=end\n def is_full()\n\n end\n\n\nend\n\n# Your MyCircularDeque object will be instantiated and called as such:\n# obj = MyCircularDeque.new(k)\n# param_1 = obj.insert_front(value)\n# param_2 = obj.insert_last(value)\n# param_3 = obj.delete_front()\n# param_4 = obj.delete_last()\n# param_5 = obj.get_front()\n# param_6 = obj.get_rear()\n# param_7 = obj.is_empty()\n# param_8 = obj.is_full()",
"__typename": "CodeSnippetNode"
},
{
"lang": "Scala",
"langSlug": "scala",
"code": "class MyCircularDeque(_k: Int) {\n\n def insertFront(value: Int): Boolean = {\n\n }\n\n def insertLast(value: Int): Boolean = {\n\n }\n\n def deleteFront(): Boolean = {\n\n }\n\n def deleteLast(): Boolean = {\n\n }\n\n def getFront(): Int = {\n\n }\n\n def getRear(): Int = {\n\n }\n\n def isEmpty(): Boolean = {\n\n }\n\n def isFull(): Boolean = {\n\n }\n\n}\n\n/**\n * Your MyCircularDeque object will be instantiated and called as such:\n * var obj = new MyCircularDeque(k)\n * var param_1 = obj.insertFront(value)\n * var param_2 = obj.insertLast(value)\n * var param_3 = obj.deleteFront()\n * var param_4 = obj.deleteLast()\n * var param_5 = obj.getFront()\n * var param_6 = obj.getRear()\n * var param_7 = obj.isEmpty()\n * var param_8 = obj.isFull()\n */",
"__typename": "CodeSnippetNode"
},
{
"lang": "Rust",
"langSlug": "rust",
"code": "struct MyCircularDeque {\n\n}\n\n\n/**\n * `&self` means the method takes an immutable reference.\n * If you need a mutable reference, change it to `&mut self` instead.\n */\nimpl MyCircularDeque {\n\n fn new(k: i32) -> Self {\n\n }\n \n fn insert_front(&self, value: i32) -> bool {\n\n }\n \n fn insert_last(&self, value: i32) -> bool {\n\n }\n \n fn delete_front(&self) -> bool {\n\n }\n \n fn delete_last(&self) -> bool {\n\n }\n \n fn get_front(&self) -> i32 {\n\n }\n \n fn get_rear(&self) -> i32 {\n\n }\n \n fn is_empty(&self) -> bool {\n\n }\n \n fn is_full(&self) -> bool {\n\n }\n}\n\n/**\n * Your MyCircularDeque object will be instantiated and called as such:\n * let obj = MyCircularDeque::new(k);\n * let ret_1: bool = obj.insert_front(value);\n * let ret_2: bool = obj.insert_last(value);\n * let ret_3: bool = obj.delete_front();\n * let ret_4: bool = obj.delete_last();\n * let ret_5: i32 = obj.get_front();\n * let ret_6: i32 = obj.get_rear();\n * let ret_7: bool = obj.is_empty();\n * let ret_8: bool = obj.is_full();\n */",
"__typename": "CodeSnippetNode"
},
{
"lang": "Racket",
"langSlug": "racket",
"code": "(define my-circular-deque%\n (class object%\n (super-new)\n \n ; k : exact-integer?\n (init-field\n k)\n \n ; insert-front : exact-integer? -> boolean?\n (define/public (insert-front value)\n )\n ; insert-last : exact-integer? -> boolean?\n (define/public (insert-last value)\n )\n ; delete-front : -> boolean?\n (define/public (delete-front)\n )\n ; delete-last : -> boolean?\n (define/public (delete-last)\n )\n ; get-front : -> exact-integer?\n (define/public (get-front)\n )\n ; get-rear : -> exact-integer?\n (define/public (get-rear)\n )\n ; is-empty : -> boolean?\n (define/public (is-empty)\n )\n ; is-full : -> boolean?\n (define/public (is-full)\n )))\n\n;; Your my-circular-deque% object will be instantiated and called as such:\n;; (define obj (new my-circular-deque% [k k]))\n;; (define param_1 (send obj insert-front value))\n;; (define param_2 (send obj insert-last value))\n;; (define param_3 (send obj delete-front))\n;; (define param_4 (send obj delete-last))\n;; (define param_5 (send obj get-front))\n;; (define param_6 (send obj get-rear))\n;; (define param_7 (send obj is-empty))\n;; (define param_8 (send obj is-full))",
"__typename": "CodeSnippetNode"
},
{
"lang": "Erlang",
"langSlug": "erlang",
"code": "-spec my_circular_deque_init_(K :: integer()) -> any().\nmy_circular_deque_init_(K) ->\n .\n\n-spec my_circular_deque_insert_front(Value :: integer()) -> boolean().\nmy_circular_deque_insert_front(Value) ->\n .\n\n-spec my_circular_deque_insert_last(Value :: integer()) -> boolean().\nmy_circular_deque_insert_last(Value) ->\n .\n\n-spec my_circular_deque_delete_front() -> boolean().\nmy_circular_deque_delete_front() ->\n .\n\n-spec my_circular_deque_delete_last() -> boolean().\nmy_circular_deque_delete_last() ->\n .\n\n-spec my_circular_deque_get_front() -> integer().\nmy_circular_deque_get_front() ->\n .\n\n-spec my_circular_deque_get_rear() -> integer().\nmy_circular_deque_get_rear() ->\n .\n\n-spec my_circular_deque_is_empty() -> boolean().\nmy_circular_deque_is_empty() ->\n .\n\n-spec my_circular_deque_is_full() -> boolean().\nmy_circular_deque_is_full() ->\n .\n\n\n%% Your functions will be called as such:\n%% my_circular_deque_init_(K),\n%% Param_1 = my_circular_deque_insert_front(Value),\n%% Param_2 = my_circular_deque_insert_last(Value),\n%% Param_3 = my_circular_deque_delete_front(),\n%% Param_4 = my_circular_deque_delete_last(),\n%% Param_5 = my_circular_deque_get_front(),\n%% Param_6 = my_circular_deque_get_rear(),\n%% Param_7 = my_circular_deque_is_empty(),\n%% Param_8 = my_circular_deque_is_full(),\n\n%% my_circular_deque_init_ will be called before every test case, in which you can do some necessary initializations.",
"__typename": "CodeSnippetNode"
},
{
"lang": "Elixir",
"langSlug": "elixir",
"code": "defmodule MyCircularDeque do\n @spec init_(k :: integer) :: any\n def init_(k) do\n \n end\n\n @spec insert_front(value :: integer) :: boolean\n def insert_front(value) do\n \n end\n\n @spec insert_last(value :: integer) :: boolean\n def insert_last(value) do\n \n end\n\n @spec delete_front() :: boolean\n def delete_front() do\n \n end\n\n @spec delete_last() :: boolean\n def delete_last() do\n \n end\n\n @spec get_front() :: integer\n def get_front() do\n \n end\n\n @spec get_rear() :: integer\n def get_rear() do\n \n end\n\n @spec is_empty() :: boolean\n def is_empty() do\n \n end\n\n @spec is_full() :: boolean\n def is_full() do\n \n end\nend\n\n# Your functions will be called as such:\n# MyCircularDeque.init_(k)\n# param_1 = MyCircularDeque.insert_front(value)\n# param_2 = MyCircularDeque.insert_last(value)\n# param_3 = MyCircularDeque.delete_front()\n# param_4 = MyCircularDeque.delete_last()\n# param_5 = MyCircularDeque.get_front()\n# param_6 = MyCircularDeque.get_rear()\n# param_7 = MyCircularDeque.is_empty()\n# param_8 = MyCircularDeque.is_full()\n\n# MyCircularDeque.init_ will be called before every test case, in which you can do some necessary initializations.",
"__typename": "CodeSnippetNode"
}
],
"stats": "{\"totalAccepted\": \"62.5K\", \"totalSubmission\": \"109.9K\", \"totalAcceptedRaw\": 62530, \"totalSubmissionRaw\": 109936, \"acRate\": \"56.9%\"}",
"hints": [],
"solution": null,
"status": null,
"sampleTestCase": "[\"MyCircularDeque\",\"insertLast\",\"insertLast\",\"insertFront\",\"insertFront\",\"getRear\",\"isFull\",\"deleteLast\",\"insertFront\",\"getFront\"]\n[[3],[1],[2],[3],[4],[],[],[],[4],[]]",
"metaData": "{\n \"classname\": \"MyCircularDeque\",\n \"constructor\": {\n \"params\": [\n {\n \"type\": \"integer\",\n \"name\": \"k\"\n }\n ]\n },\n \"methods\": [\n {\n \"params\": [\n {\n \"type\": \"integer\",\n \"name\": \"value\"\n }\n ],\n \"return\": {\n \"type\": \"boolean\"\n },\n \"name\": \"insertFront\"\n },\n {\n \"params\": [\n {\n \"type\": \"integer\",\n \"name\": \"value\"\n }\n ],\n \"return\": {\n \"type\": \"boolean\"\n },\n \"name\": \"insertLast\"\n },\n {\n \"params\": [],\n \"return\": {\n \"type\": \"boolean\"\n },\n \"name\": \"deleteFront\"\n },\n {\n \"params\": [],\n \"return\": {\n \"type\": \"boolean\"\n },\n \"name\": \"deleteLast\"\n },\n {\n \"params\": [],\n \"return\": {\n \"type\": \"integer\"\n },\n \"name\": \"getFront\"\n },\n {\n \"params\": [],\n \"return\": {\n \"type\": \"integer\"\n },\n \"name\": \"getRear\"\n },\n {\n \"params\": [],\n \"return\": {\n \"type\": \"boolean\"\n },\n \"name\": \"isEmpty\"\n },\n {\n \"params\": [],\n \"return\": {\n \"type\": \"boolean\"\n },\n \"name\": \"isFull\"\n }\n ],\n \"return\": {\n \"type\": \"boolean\"\n },\n \"systemdesign\": true\n}",
"judgerAvailable": true,
"judgeType": "large",
"mysqlSchemas": [],
"enableRunCode": true,
"envInfo": "{\"cpp\":[\"C++\",\"<p>\\u7248\\u672c\\uff1a<code>clang 11<\\/code> \\u91c7\\u7528\\u6700\\u65b0C++ 20\\u6807\\u51c6\\u3002<\\/p>\\r\\n\\r\\n<p>\\u7f16\\u8bd1\\u65f6\\uff0c\\u5c06\\u4f1a\\u91c7\\u7528<code>-O2<\\/code>\\u7ea7\\u4f18\\u5316\\u3002<a href=\\\"https:\\/\\/github.com\\/google\\/sanitizers\\/wiki\\/AddressSanitizer\\\" target=\\\"_blank\\\">AddressSanitizer<\\/a> \\u4e5f\\u88ab\\u5f00\\u542f\\u6765\\u68c0\\u6d4b<code>out-of-bounds<\\/code>\\u548c<code>use-after-free<\\/code>\\u9519\\u8bef\\u3002<\\/p>\\r\\n\\r\\n<p>\\u4e3a\\u4e86\\u4f7f\\u7528\\u65b9\\u4fbf\\uff0c\\u5927\\u90e8\\u5206\\u6807\\u51c6\\u5e93\\u7684\\u5934\\u6587\\u4ef6\\u5df2\\u7ecf\\u88ab\\u81ea\\u52a8\\u5bfc\\u5165\\u3002<\\/p>\"],\"java\":[\"Java\",\"<p>\\u7248\\u672c\\uff1a<code>OpenJDK 17<\\/code>\\u3002\\u53ef\\u4ee5\\u4f7f\\u7528Java 8\\u7684\\u7279\\u6027\\u4f8b\\u5982\\uff0clambda expressions \\u548c stream API\\u3002<\\/p>\\r\\n\\r\\n<p>\\u4e3a\\u4e86\\u65b9\\u4fbf\\u8d77\\u89c1\\uff0c\\u5927\\u90e8\\u5206\\u6807\\u51c6\\u5e93\\u7684\\u5934\\u6587\\u4ef6\\u5df2\\u88ab\\u5bfc\\u5165\\u3002<\\/p>\\r\\n\\r\\n<p>\\u5305\\u542b Pair \\u7c7b: https:\\/\\/docs.oracle.com\\/javase\\/8\\/javafx\\/api\\/javafx\\/util\\/Pair.html <\\/p>\"],\"python\":[\"Python\",\"<p>\\u7248\\u672c\\uff1a <code>Python 2.7.12<\\/code><\\/p>\\r\\n\\r\\n<p>\\u4e3a\\u4e86\\u65b9\\u4fbf\\u8d77\\u89c1\\uff0c\\u5927\\u90e8\\u5206\\u5e38\\u7528\\u5e93\\u5df2\\u7ecf\\u88ab\\u81ea\\u52a8 \\u5bfc\\u5165\\uff0c\\u5982\\uff1a<a href=\\\"https:\\/\\/docs.python.org\\/2\\/library\\/array.html\\\" target=\\\"_blank\\\">array<\\/a>, <a href=\\\"https:\\/\\/docs.python.org\\/2\\/library\\/bisect.html\\\" target=\\\"_blank\\\">bisect<\\/a>, <a href=\\\"https:\\/\\/docs.python.org\\/2\\/library\\/collections.html\\\" target=\\\"_blank\\\">collections<\\/a>\\u3002\\u5982\\u679c\\u60a8\\u9700\\u8981\\u4f7f\\u7528\\u5176\\u4ed6\\u5e93\\u51fd\\u6570\\uff0c\\u8bf7\\u81ea\\u884c\\u5bfc\\u5165\\u3002<\\/p>\\r\\n\\r\\n<p>\\u6ce8\\u610f Python 2.7 <a href=\\\"https:\\/\\/www.python.org\\/dev\\/peps\\/pep-0373\\/\\\" target=\\\"_blank\\\">\\u5c06\\u57282020\\u5e74\\u540e\\u4e0d\\u518d\\u7ef4\\u62a4<\\/a>\\u3002 \\u5982\\u60f3\\u4f7f\\u7528\\u6700\\u65b0\\u7248\\u7684Python\\uff0c\\u8bf7\\u9009\\u62e9Python 3\\u3002<\\/p>\"],\"c\":[\"C\",\"<p>\\u7248\\u672c\\uff1a<code>GCC 8.2<\\/code>\\uff0c\\u91c7\\u7528GNU11\\u6807\\u51c6\\u3002<\\/p>\\r\\n\\r\\n<p>\\u7f16\\u8bd1\\u65f6\\uff0c\\u5c06\\u4f1a\\u91c7\\u7528<code>-O1<\\/code>\\u7ea7\\u4f18\\u5316\\u3002 <a href=\\\"https:\\/\\/github.com\\/google\\/sanitizers\\/wiki\\/AddressSanitizer\\\" target=\\\"_blank\\\">AddressSanitizer<\\/a>\\u4e5f\\u88ab\\u5f00\\u542f\\u6765\\u68c0\\u6d4b<code>out-of-bounds<\\/code>\\u548c<code>use-after-free<\\/code>\\u9519\\u8bef\\u3002<\\/p>\\r\\n\\r\\n<p>\\u4e3a\\u4e86\\u4f7f\\u7528\\u65b9\\u4fbf\\uff0c\\u5927\\u90e8\\u5206\\u6807\\u51c6\\u5e93\\u7684\\u5934\\u6587\\u4ef6\\u5df2\\u7ecf\\u88ab\\u81ea\\u52a8\\u5bfc\\u5165\\u3002<\\/p>\\r\\n\\r\\n<p>\\u5982\\u60f3\\u4f7f\\u7528\\u54c8\\u5e0c\\u8868\\u8fd0\\u7b97, \\u60a8\\u53ef\\u4ee5\\u4f7f\\u7528 <a href=\\\"https:\\/\\/troydhanson.github.io\\/uthash\\/\\\" target=\\\"_blank\\\">uthash<\\/a>\\u3002 \\\"uthash.h\\\"\\u5df2\\u7ecf\\u9ed8\\u8ba4\\u88ab\\u5bfc\\u5165\\u3002\\u8bf7\\u770b\\u5982\\u4e0b\\u793a\\u4f8b:<\\/p>\\r\\n\\r\\n<p><b>1. \\u5f80\\u54c8\\u5e0c\\u8868\\u4e2d\\u6dfb\\u52a0\\u4e00\\u4e2a\\u5bf9\\u8c61\\uff1a<\\/b>\\r\\n<pre>\\r\\nstruct hash_entry {\\r\\n int id; \\/* we'll use this field as the key *\\/\\r\\n char name[10];\\r\\n UT_hash_handle hh; \\/* makes this structure hashable *\\/\\r\\n};\\r\\n\\r\\nstruct hash_entry *users = NULL;\\r\\n\\r\\nvoid add_user(struct hash_entry *s) {\\r\\n HASH_ADD_INT(users, id, s);\\r\\n}\\r\\n<\\/pre>\\r\\n<\\/p>\\r\\n\\r\\n<p><b>2. \\u5728\\u54c8\\u5e0c\\u8868\\u4e2d\\u67e5\\u627e\\u4e00\\u4e2a\\u5bf9\\u8c61\\uff1a<\\/b>\\r\\n<pre>\\r\\nstruct hash_entry *find_user(int user_id) {\\r\\n struct hash_entry *s;\\r\\n HASH_FIND_INT(users, &user_id, s);\\r\\n return s;\\r\\n}\\r\\n<\\/pre>\\r\\n<\\/p>\\r\\n\\r\\n<p><b>3. \\u4ece\\u54c8\\u5e0c\\u8868\\u4e2d\\u5220\\u9664\\u4e00\\u4e2a\\u5bf9\\u8c61\\uff1a<\\/b>\\r\\n<pre>\\r\\nvoid delete_user(struct hash_entry *user) {\\r\\n HASH_DEL(users, user); \\r\\n}\\r\\n<\\/pre>\\r\\n<\\/p>\"],\"csharp\":[\"C#\",\"<p><a href=\\\"https:\\/\\/docs.microsoft.com\\/en-us\\/dotnet\\/csharp\\/whats-new\\/csharp-9\\\" target=\\\"_blank\\\">C# 10<\\/a> \\u8fd0\\u884c\\u5728 .NET 6 \\u4e0a<\\/p>\"],\"javascript\":[\"JavaScript\",\"<p>\\u7248\\u672c\\uff1a<code>Node.js 16.13.2<\\/code><\\/p>\\r\\n\\r\\n<p>\\u60a8\\u7684\\u4ee3\\u7801\\u5728\\u6267\\u884c\\u65f6\\u5c06\\u5e26\\u4e0a <code>--harmony<\\/code> \\u6807\\u8bb0\\u6765\\u5f00\\u542f <a href=\\\"http:\\/\\/node.green\\/\\\" target=\\\"_blank\\\">\\u65b0\\u7248ES6\\u7279\\u6027<\\/a>\\u3002<\\/p>\\r\\n\\r\\n<p><a href=\\\"https:\\/\\/lodash.com\\\" target=\\\"_blank\\\">lodash.js<\\/a> \\u5e93\\u5df2\\u7ecf\\u9ed8\\u8ba4\\u88ab\\u5305\\u542b\\u3002<\\/p>\\r\\n\\r\\n<p> \\u5982\\u9700\\u4f7f\\u7528\\u961f\\u5217\\/\\u4f18\\u5148\\u961f\\u5217\\uff0c\\u60a8\\u53ef\\u4f7f\\u7528 <a href=\\\"https:\\/\\/github.com\\/datastructures-js\\/priority-queue\\/tree\\/fb4fdb984834421279aeb081df7af624d17c2a03\\\" target=\\\"_blank\\\"> datastructures-js\\/priority-queue@5.3.0<\\/a> \\u548c <a href=\\\"https:\\/\\/github.com\\/datastructures-js\\/queue\\/tree\\/e63563025a5a805aa16928cb53bcd517bfea9230\\\" target=\\\"_blank\\\"> datastructures-js\\/queue@4.2.1<\\/a>\\u3002<\\/p>\"],\"ruby\":[\"Ruby\",\"<p>\\u4f7f\\u7528<code>Ruby 3.1<\\/code>\\u6267\\u884c<\\/p>\\r\\n\\r\\n<p>\\u4e00\\u4e9b\\u5e38\\u7528\\u7684\\u6570\\u636e\\u7ed3\\u6784\\u5df2\\u5728 Algorithms \\u6a21\\u5757\\u4e2d\\u63d0\\u4f9b\\uff1ahttps:\\/\\/www.rubydoc.info\\/github\\/kanwei\\/algorithms\\/Algorithms<\\/p>\"],\"swift\":[\"Swift\",\"<p>\\u7248\\u672c\\uff1a<code>Swift 5.5.2<\\/code><\\/p>\\r\\n\\r\\n<p>\\u6211\\u4eec\\u901a\\u5e38\\u4fdd\\u8bc1\\u66f4\\u65b0\\u5230 <a href=\\\"https:\\/\\/swift.org\\/download\\/\\\" target=\\\"_blank\\\">Apple\\u653e\\u51fa\\u7684\\u6700\\u65b0\\u7248Swift<\\/a>\\u3002\\u5982\\u679c\\u60a8\\u53d1\\u73b0Swift\\u4e0d\\u662f\\u6700\\u65b0\\u7248\\u7684\\uff0c\\u8bf7\\u8054\\u7cfb\\u6211\\u4eec\\uff01\\u6211\\u4eec\\u5c06\\u5c3d\\u5feb\\u66f4\\u65b0\\u3002<\\/p>\"],\"golang\":[\"Go\",\"<p>\\u7248\\u672c\\uff1a<code>Go 1.21<\\/code><\\/p>\\r\\n\\r\\n<p>\\u652f\\u6301 <a href=\\\"https:\\/\\/github.com\\/emirpasic\\/gods\\/tree\\/v1.18.1\\\" target=\\\"_blank\\\">https:\\/\\/godoc.org\\/github.com\\/emirpasic\\/gods@v1.18.1<\\/a> \\u7b2c\\u4e09\\u65b9\\u5e93\\u3002<\\/p>\"],\"python3\":[\"Python3\",\"<p>\\u7248\\u672c\\uff1a<code>Python 3.10<\\/code><\\/p>\\r\\n\\r\\n<p>\\u4e3a\\u4e86\\u65b9\\u4fbf\\u8d77\\u89c1\\uff0c\\u5927\\u90e8\\u5206\\u5e38\\u7528\\u5e93\\u5df2\\u7ecf\\u88ab\\u81ea\\u52a8 \\u5bfc\\u5165\\uff0c\\u5982<a href=\\\"https:\\/\\/docs.python.org\\/3\\/library\\/array.html\\\" target=\\\"_blank\\\">array<\\/a>, <a href=\\\"https:\\/\\/docs.python.org\\/3\\/library\\/bisect.html\\\" target=\\\"_blank\\\">bisect<\\/a>, <a href=\\\"https:\\/\\/docs.python.org\\/3\\/library\\/collections.html\\\" target=\\\"_blank\\\">collections<\\/a>\\u3002 \\u5982\\u679c\\u60a8\\u9700\\u8981\\u4f7f\\u7528\\u5176\\u4ed6\\u5e93\\u51fd\\u6570\\uff0c\\u8bf7\\u81ea\\u884c\\u5bfc\\u5165\\u3002<\\/p>\\r\\n\\r\\n<p>\\u5982\\u9700\\u4f7f\\u7528 Map\\/TreeMap \\u6570\\u636e\\u7ed3\\u6784\\uff0c\\u60a8\\u53ef\\u4f7f\\u7528 <a href=\\\"http:\\/\\/www.grantjenks.com\\/docs\\/sortedcontainers\\/\\\" target=\\\"_blank\\\">sortedcontainers<\\/a> \\u5e93\\u3002<\\/p>\"],\"scala\":[\"Scala\",\"<p>\\u7248\\u672c\\uff1a<code>Scala 2.13<\\/code><\\/p>\"],\"kotlin\":[\"Kotlin\",\"<p>\\u7248\\u672c\\uff1a<code>Kotlin 1.9.0<\\/code><\\/p>\\r\\n\\r\\n<p>\\u6211\\u4eec\\u4f7f\\u7528\\u7684\\u662f JetBrains \\u63d0\\u4f9b\\u7684 experimental compiler\\u3002\\u5982\\u679c\\u60a8\\u8ba4\\u4e3a\\u60a8\\u9047\\u5230\\u4e86\\u7f16\\u8bd1\\u5668\\u76f8\\u5173\\u7684\\u95ee\\u9898\\uff0c\\u8bf7\\u5411\\u6211\\u4eec\\u53cd\\u9988<\\/p>\"],\"rust\":[\"Rust\",\"<p>\\u7248\\u672c\\uff1a<code>rust 1.58.1<\\/code><\\/p>\\r\\n\\r\\n<p>\\u652f\\u6301 crates.io \\u7684 <a href=\\\"https:\\/\\/crates.io\\/crates\\/rand\\\" target=\\\"_blank\\\">rand<\\/a><\\/p>\"],\"php\":[\"PHP\",\"<p><code>PHP 8.1<\\/code>.<\\/p>\\r\\n\\r\\n<p>With bcmath module.<\\/p>\"],\"typescript\":[\"TypeScript\",\"<p>TypeScript 5.1.6<\\/p>\\r\\n\\r\\n<p>Compile Options: --alwaysStrict --strictBindCallApply --strictFunctionTypes --target ES2022<\\/p>\\r\\n\\r\\n<p><a href=\\\"https:\\/\\/lodash.com\\\" target=\\\"_blank\\\">lodash.js<\\/a> \\u5e93\\u5df2\\u7ecf\\u9ed8\\u8ba4\\u88ab\\u5305\\u542b\\u3002<\\/p>\\r\\n\\r\\n<p> \\u5982\\u9700\\u4f7f\\u7528\\u961f\\u5217\\/\\u4f18\\u5148\\u961f\\u5217\\uff0c\\u60a8\\u53ef\\u4f7f\\u7528 <a href=\\\"https:\\/\\/github.com\\/datastructures-js\\/priority-queue\\/tree\\/fb4fdb984834421279aeb081df7af624d17c2a03\\\" target=\\\"_blank\\\"> datastructures-js\\/priority-queue@5.3.0<\\/a> \\u548c <a href=\\\"https:\\/\\/github.com\\/datastructures-js\\/queue\\/tree\\/e63563025a5a805aa16928cb53bcd517bfea9230\\\" target=\\\"_blank\\\"> datastructures-js\\/queue@4.2.1<\\/a>\\u3002<\\/p>\"],\"racket\":[\"Racket\",\"<p><a href=\\\"https:\\/\\/docs.racket-lang.org\\/guide\\/performance.html#%28tech._c%29\\\" target=\\\"_blank\\\">Racket CS<\\/a> v8.3<\\/p>\\r\\n\\r\\n<p>\\u4f7f\\u7528 #lang racket<\\/p>\\r\\n\\r\\n<p>\\u5df2\\u9884\\u5148 (require data\\/gvector data\\/queue data\\/order data\\/heap). \\u82e5\\u9700\\u4f7f\\u7528\\u5176\\u5b83\\u6570\\u636e\\u7ed3\\u6784\\uff0c\\u53ef\\u81ea\\u884c require\\u3002<\\/p>\"],\"erlang\":[\"Erlang\",\"Erlang\\/OTP 24.2\"],\"elixir\":[\"Elixir\",\"Elixir 1.13.0 with Erlang\\/OTP 24.2\"],\"dart\":[\"Dart\",\"<p>Dart 2.17.3<\\/p>\\r\\n\\r\\n<p>\\u60a8\\u7684\\u4ee3\\u7801\\u5c06\\u4f1a\\u88ab\\u4e0d\\u7f16\\u8bd1\\u76f4\\u63a5\\u8fd0\\u884c<\\/p>\"]}",
"book": null,
"isSubscribed": false,
"isDailyQuestion": false,
"dailyRecordStatus": null,
"editorType": "CKEDITOR",
"ugcQuestionId": null,
"style": "LEETCODE",
"exampleTestcases": "[\"MyCircularDeque\",\"insertLast\",\"insertLast\",\"insertFront\",\"insertFront\",\"getRear\",\"isFull\",\"deleteLast\",\"insertFront\",\"getFront\"]\n[[3],[1],[2],[3],[4],[],[],[],[4],[]]",
"__typename": "QuestionNode"
}
}
}