1
0
mirror of https://gitee.com/coder-xiaomo/leetcode-problemset synced 2025-01-11 02:58:13 +08:00
Code Issues Projects Releases Wiki Activity GitHub Gitee
leetcode-problemset/leetcode-cn/originData/dui-lie-de-zui-da-zhi-lcof.json
2022-05-02 23:44:12 +08:00

185 lines
27 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": "100337",
"questionFrontendId": "剑指 Offer 59 - II",
"categoryTitle": "LCOF",
"boundTopicId": 88051,
"title": "队列的最大值 LCOF",
"titleSlug": "dui-lie-de-zui-da-zhi-lcof",
"content": "<p>English description is not available for the problem. Please switch to Chinese.</p>",
"translatedTitle": "队列的最大值",
"translatedContent": "<p>请定义一个队列并实现函数 <code>max_value</code> 得到队列里的最大值,要求函数<code>max_value</code>、<code>push_back</code> 和 <code>pop_front</code> 的<strong>均摊</strong>时间复杂度都是O(1)。</p>\n\n<p>若队列为空,<code>pop_front</code> 和 <code>max_value</code>&nbsp;需要返回 -1</p>\n\n<p><strong>示例 1</strong></p>\n\n<pre><strong>输入:</strong> \n[&quot;MaxQueue&quot;,&quot;push_back&quot;,&quot;push_back&quot;,&quot;max_value&quot;,&quot;pop_front&quot;,&quot;max_value&quot;]\n[[],[1],[2],[],[],[]]\n<strong>输出:&nbsp;</strong>[null,null,null,2,1,2]\n</pre>\n\n<p><strong>示例 2</strong></p>\n\n<pre><strong>输入:</strong> \n[&quot;MaxQueue&quot;,&quot;pop_front&quot;,&quot;max_value&quot;]\n[[],[],[]]\n<strong>输出:&nbsp;</strong>[null,-1,-1]\n</pre>\n\n<p>&nbsp;</p>\n\n<p><strong>限制:</strong></p>\n\n<ul>\n\t<li><code>1 &lt;= push_back,pop_front,max_value的总操作数&nbsp;&lt;= 10000</code></li>\n\t<li><code>1 &lt;= value &lt;= 10^5</code></li>\n</ul>\n",
"isPaidOnly": false,
"difficulty": "Medium",
"likes": 358,
"dislikes": 0,
"isLiked": null,
"similarQuestions": "[]",
"contributors": [],
"langToValidPlayground": "{\"cpp\": false, \"java\": false, \"python\": false, \"python3\": false, \"mysql\": false, \"mssql\": false, \"oraclesql\": false, \"c\": false, \"csharp\": false, \"javascript\": false, \"ruby\": false, \"bash\": false, \"swift\": false, \"golang\": false, \"scala\": false, \"html\": false, \"pythonml\": false, \"kotlin\": false, \"rust\": false, \"php\": false, \"typescript\": false, \"racket\": false, \"erlang\": false, \"elixir\": false}",
"topicTags": [
{
"name": "Design",
"slug": "design",
"translatedName": "设计",
"__typename": "TopicTagNode"
},
{
"name": "Queue",
"slug": "queue",
"translatedName": "队列",
"__typename": "TopicTagNode"
},
{
"name": "Monotonic Queue",
"slug": "monotonic-queue",
"translatedName": "单调队列",
"__typename": "TopicTagNode"
}
],
"companyTagStats": null,
"codeSnippets": [
{
"lang": "C++",
"langSlug": "cpp",
"code": "class MaxQueue {\npublic:\n MaxQueue() {\n\n }\n \n int max_value() {\n\n }\n \n void push_back(int value) {\n\n }\n \n int pop_front() {\n\n }\n};\n\n/**\n * Your MaxQueue object will be instantiated and called as such:\n * MaxQueue* obj = new MaxQueue();\n * int param_1 = obj->max_value();\n * obj->push_back(value);\n * int param_3 = obj->pop_front();\n */",
"__typename": "CodeSnippetNode"
},
{
"lang": "Java",
"langSlug": "java",
"code": "class MaxQueue {\n\n public MaxQueue() {\n\n }\n \n public int max_value() {\n\n }\n \n public void push_back(int value) {\n\n }\n \n public int pop_front() {\n\n }\n}\n\n/**\n * Your MaxQueue object will be instantiated and called as such:\n * MaxQueue obj = new MaxQueue();\n * int param_1 = obj.max_value();\n * obj.push_back(value);\n * int param_3 = obj.pop_front();\n */",
"__typename": "CodeSnippetNode"
},
{
"lang": "Python",
"langSlug": "python",
"code": "class MaxQueue(object):\n\n def __init__(self):\n\n\n def max_value(self):\n \"\"\"\n :rtype: int\n \"\"\"\n\n\n def push_back(self, value):\n \"\"\"\n :type value: int\n :rtype: None\n \"\"\"\n\n\n def pop_front(self):\n \"\"\"\n :rtype: int\n \"\"\"\n\n\n\n# Your MaxQueue object will be instantiated and called as such:\n# obj = MaxQueue()\n# param_1 = obj.max_value()\n# obj.push_back(value)\n# param_3 = obj.pop_front()",
"__typename": "CodeSnippetNode"
},
{
"lang": "Python3",
"langSlug": "python3",
"code": "class MaxQueue:\n\n def __init__(self):\n\n\n def max_value(self) -> int:\n\n\n def push_back(self, value: int) -> None:\n\n\n def pop_front(self) -> int:\n\n\n\n# Your MaxQueue object will be instantiated and called as such:\n# obj = MaxQueue()\n# param_1 = obj.max_value()\n# obj.push_back(value)\n# param_3 = obj.pop_front()",
"__typename": "CodeSnippetNode"
},
{
"lang": "C",
"langSlug": "c",
"code": "\n\n\ntypedef struct {\n\n} MaxQueue;\n\n\nMaxQueue* maxQueueCreate() {\n\n}\n\nint maxQueueMax_value(MaxQueue* obj) {\n\n}\n\nvoid maxQueuePush_back(MaxQueue* obj, int value) {\n\n}\n\nint maxQueuePop_front(MaxQueue* obj) {\n\n}\n\nvoid maxQueueFree(MaxQueue* obj) {\n\n}\n\n/**\n * Your MaxQueue struct will be instantiated and called as such:\n * MaxQueue* obj = maxQueueCreate();\n * int param_1 = maxQueueMax_value(obj);\n \n * maxQueuePush_back(obj, value);\n \n * int param_3 = maxQueuePop_front(obj);\n \n * maxQueueFree(obj);\n*/",
"__typename": "CodeSnippetNode"
},
{
"lang": "C#",
"langSlug": "csharp",
"code": "public class MaxQueue {\n\n public MaxQueue() {\n\n }\n \n public int Max_value() {\n\n }\n \n public void Push_back(int value) {\n\n }\n \n public int Pop_front() {\n\n }\n}\n\n/**\n * Your MaxQueue object will be instantiated and called as such:\n * MaxQueue obj = new MaxQueue();\n * int param_1 = obj.Max_value();\n * obj.Push_back(value);\n * int param_3 = obj.Pop_front();\n */",
"__typename": "CodeSnippetNode"
},
{
"lang": "JavaScript",
"langSlug": "javascript",
"code": "\nvar MaxQueue = function() {\n\n};\n\n/**\n * @return {number}\n */\nMaxQueue.prototype.max_value = function() {\n\n};\n\n/** \n * @param {number} value\n * @return {void}\n */\nMaxQueue.prototype.push_back = function(value) {\n\n};\n\n/**\n * @return {number}\n */\nMaxQueue.prototype.pop_front = function() {\n\n};\n\n/**\n * Your MaxQueue object will be instantiated and called as such:\n * var obj = new MaxQueue()\n * var param_1 = obj.max_value()\n * obj.push_back(value)\n * var param_3 = obj.pop_front()\n */",
"__typename": "CodeSnippetNode"
},
{
"lang": "Ruby",
"langSlug": "ruby",
"code": "class MaxQueue\n def initialize()\n\n end\n\n\n=begin\n :rtype: Integer\n=end\n def max_value()\n\n end\n\n\n=begin\n :type value: Integer\n :rtype: Void\n=end\n def push_back(value)\n\n end\n\n\n=begin\n :rtype: Integer\n=end\n def pop_front()\n\n end\n\n\nend\n\n# Your MaxQueue object will be instantiated and called as such:\n# obj = MaxQueue.new()\n# param_1 = obj.max_value()\n# obj.push_back(value)\n# param_3 = obj.pop_front()",
"__typename": "CodeSnippetNode"
},
{
"lang": "Swift",
"langSlug": "swift",
"code": "\nclass MaxQueue {\n\n init() {\n\n }\n \n func max_value() -> Int {\n\n }\n \n func push_back(_ value: Int) {\n\n }\n \n func pop_front() -> Int {\n\n }\n}\n\n/**\n * Your MaxQueue object will be instantiated and called as such:\n * let obj = MaxQueue()\n * let ret_1: Int = obj.max_value()\n * obj.push_back(value)\n * let ret_3: Int = obj.pop_front()\n */",
"__typename": "CodeSnippetNode"
},
{
"lang": "Go",
"langSlug": "golang",
"code": "type MaxQueue struct {\n\n}\n\n\nfunc Constructor() MaxQueue {\n\n}\n\n\nfunc (this *MaxQueue) Max_value() int {\n\n}\n\n\nfunc (this *MaxQueue) Push_back(value int) {\n\n}\n\n\nfunc (this *MaxQueue) Pop_front() int {\n\n}\n\n\n/**\n * Your MaxQueue object will be instantiated and called as such:\n * obj := Constructor();\n * param_1 := obj.Max_value();\n * obj.Push_back(value);\n * param_3 := obj.Pop_front();\n */",
"__typename": "CodeSnippetNode"
},
{
"lang": "Scala",
"langSlug": "scala",
"code": "class MaxQueue() {\n\n def max_value(): Int = {\n\n }\n\n def push_back(value: Int) {\n\n }\n\n def pop_front(): Int = {\n\n }\n\n}\n\n/**\n * Your MaxQueue object will be instantiated and called as such:\n * var obj = new MaxQueue()\n * var param_1 = obj.max_value()\n * obj.push_back(value)\n * var param_3 = obj.pop_front()\n */",
"__typename": "CodeSnippetNode"
},
{
"lang": "Kotlin",
"langSlug": "kotlin",
"code": "class MaxQueue() {\n\n fun max_value(): Int {\n\n }\n\n fun push_back(value: Int) {\n\n }\n\n fun pop_front(): Int {\n\n }\n\n}\n\n/**\n * Your MaxQueue object will be instantiated and called as such:\n * var obj = MaxQueue()\n * var param_1 = obj.max_value()\n * obj.push_back(value)\n * var param_3 = obj.pop_front()\n */",
"__typename": "CodeSnippetNode"
},
{
"lang": "Rust",
"langSlug": "rust",
"code": "struct MaxQueue {\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 MaxQueue {\n\n fn new() -> Self {\n\n }\n \n fn max_value(&self) -> i32 {\n\n }\n \n fn push_back(&self, value: i32) {\n\n }\n \n fn pop_front(&self) -> i32 {\n\n }\n}\n\n/**\n * Your MaxQueue object will be instantiated and called as such:\n * let obj = MaxQueue::new();\n * let ret_1: i32 = obj.max_value();\n * obj.push_back(value);\n * let ret_3: i32 = obj.pop_front();\n */",
"__typename": "CodeSnippetNode"
},
{
"lang": "PHP",
"langSlug": "php",
"code": "class MaxQueue {\n /**\n */\n function __construct() {\n\n }\n\n /**\n * @return Integer\n */\n function max_value() {\n\n }\n\n /**\n * @param Integer $value\n * @return NULL\n */\n function push_back($value) {\n\n }\n\n /**\n * @return Integer\n */\n function pop_front() {\n\n }\n}\n\n/**\n * Your MaxQueue object will be instantiated and called as such:\n * $obj = MaxQueue();\n * $ret_1 = $obj->max_value();\n * $obj->push_back($value);\n * $ret_3 = $obj->pop_front();\n */",
"__typename": "CodeSnippetNode"
},
{
"lang": "TypeScript",
"langSlug": "typescript",
"code": "class MaxQueue {\n constructor() {\n\n }\n\n max_value(): number {\n\n }\n\n push_back(value: number): void {\n\n }\n\n pop_front(): number {\n\n }\n}\n\n/**\n * Your MaxQueue object will be instantiated and called as such:\n * var obj = new MaxQueue()\n * var param_1 = obj.max_value()\n * obj.push_back(value)\n * var param_3 = obj.pop_front()\n */",
"__typename": "CodeSnippetNode"
},
{
"lang": "Racket",
"langSlug": "racket",
"code": "(define max-queue%\n (class object%\n (super-new)\n (init-field)\n \n ; max_value : -> exact-integer?\n (define/public (max_value)\n\n )\n ; push_back : exact-integer? -> void?\n (define/public (push_back value)\n\n )\n ; pop_front : -> exact-integer?\n (define/public (pop_front)\n\n )))\n\n;; Your max-queue% object will be instantiated and called as such:\n;; (define obj (new max-queue%))\n;; (define param_1 (send obj max_value))\n;; (send obj push_back value)\n;; (define param_3 (send obj pop_front))",
"__typename": "CodeSnippetNode"
},
{
"lang": "Erlang",
"langSlug": "erlang",
"code": "-spec max_queue_init_() -> any().\nmax_queue_init_() ->\n .\n\n-spec max_queue_max_value() -> integer().\nmax_queue_max_value() ->\n .\n\n-spec max_queue_push_back(Value :: integer()) -> any().\nmax_queue_push_back(Value) ->\n .\n\n-spec max_queue_pop_front() -> integer().\nmax_queue_pop_front() ->\n .\n\n\n%% Your functions will be called as such:\n%% max_queue_init_(),\n%% Param_1 = max_queue_max_value(),\n%% max_queue_push_back(Value),\n%% Param_3 = max_queue_pop_front(),\n\n%% max_queue_init_ will be called before every test case, in which you can do some necessary initializations.",
"__typename": "CodeSnippetNode"
},
{
"lang": "Elixir",
"langSlug": "elixir",
"code": "defmodule MaxQueue do\n @spec init_() :: any\n def init_() do\n\n end\n\n @spec max_value() :: integer\n def max_value() do\n\n end\n\n @spec push_back(value :: integer) :: any\n def push_back(value) do\n\n end\n\n @spec pop_front() :: integer\n def pop_front() do\n\n end\nend\n\n# Your functions will be called as such:\n# MaxQueue.init_()\n# param_1 = MaxQueue.max_value()\n# MaxQueue.push_back(value)\n# param_3 = MaxQueue.pop_front()\n\n# MaxQueue.init_ will be called before every test case, in which you can do some necessary initializations.",
"__typename": "CodeSnippetNode"
}
],
"stats": "{\"totalAccepted\": \"124.4K\", \"totalSubmission\": \"260.8K\", \"totalAcceptedRaw\": 124384, \"totalSubmissionRaw\": 260756, \"acRate\": \"47.7%\"}",
"hints": [],
"solution": null,
"status": null,
"sampleTestCase": "[\"MaxQueue\",\"push_back\",\"push_back\",\"max_value\",\"pop_front\",\"max_value\"]\n[[],[1],[2],[],[],[]]",
"metaData": "{\r\n \"classname\": \"MaxQueue\",\r\n \"maxbytesperline\": 200000,\r\n \"constructor\": {\r\n \"params\": [\r\n ]\r\n },\r\n \"methods\": [\r\n {\r\n \"name\" : \"max_value\",\r\n \"params\": [\r\n ],\r\n \"return\": {\r\n \"type\": \"integer\"\r\n }\r\n },\r\n {\r\n \"name\" : \"push_back\",\r\n \"params\": [\r\n {\r\n \"type\":\"integer\",\r\n \"name\":\"value\"\r\n }\r\n ],\r\n \"return\": {\r\n \"type\": \"void\"\r\n }\r\n },\r\n {\r\n \"name\" : \"pop_front\",\r\n \"params\": [\r\n ],\r\n \"return\": {\r\n \"type\": \"integer\"\r\n }\r\n }\r\n ],\r\n \"systemdesign\": true,\r\n \"params\": [\r\n {\r\n \"name\": \"inputs\",\r\n \"type\": \"integer[]\"\r\n },\r\n {\r\n \"name\": \"inputs\",\r\n \"type\": \"integer[]\"\r\n }\r\n ],\r\n \"return\": {\r\n \"type\": \"list<String>\",\r\n \"dealloc\": true\r\n }\r\n}",
"judgerAvailable": true,
"judgeType": "large",
"mysqlSchemas": [],
"enableRunCode": true,
"envInfo": "{\"cpp\":[\"C++\",\"<p>\\u7248\\u672c\\uff1a<code>clang 11<\\/code> \\u91c7\\u7528\\u6700\\u65b0C++ 17\\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\\u7528GNU99\\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>\\r\\n\\r\\n<p>\\u60a8\\u7684\\u4ee3\\u7801\\u5728\\u7f16\\u8bd1\\u65f6\\u9ed8\\u8ba4\\u5f00\\u542f\\u4e86debug\\u6807\\u8bb0(<code>\\/debug:pdbonly<\\/code>)\\u3002<\\/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\\\" target=\\\"_blank\\\"> datastructures-js\\/priority-queue<\\/a> \\u548c <a href=\\\"https:\\/\\/github.com\\/datastructures-js\\/queue\\\" target=\\\"_blank\\\"> datastructures-js\\/queue<\\/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.17<\\/code><\\/p>\\r\\n\\r\\n<p>\\u652f\\u6301 <a href=\\\"https:\\/\\/godoc.org\\/github.com\\/emirpasic\\/gods\\\" target=\\\"_blank\\\">https:\\/\\/godoc.org\\/github.com\\/emirpasic\\/gods<\\/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.3.10<\\/code><\\/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 4.5.4<\\/p>\\r\\n\\r\\n<p>Compile Options: --alwaysStrict --strictBindCallApply --strictFunctionTypes --target ES2020<\\/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\"]}",
"book": {
"id": "1",
"bookName": "《剑指 Offer第 2 版)》",
"pressName": "电子工业出版社",
"source": "《剑指 Offer第 2 版)》官方授权",
"shortDescription": "通行全球的程序员经典面试秘籍",
"fullDescription": "本书精选谷歌、微软等知名IT企业的典型面试题系统地总结了如何在面试时写出高质量代码如何优化代码效率以及分析、解决难题的常用方法。",
"bookImgUrl": "https://assets.leetcode-cn.com/aliyun-lc-upload/uploads/2020/02/11/lcof.png",
"pressImgUrl": "https://assets.leetcode-cn.com/aliyun-lc-upload/uploads/2020/02/11/logo-01.png",
"productUrl": "",
"__typename": "CategoryInfoNode"
},
"isSubscribed": false,
"isDailyQuestion": false,
"dailyRecordStatus": null,
"editorType": "CKEDITOR",
"ugcQuestionId": null,
"style": "LEETCODE",
"exampleTestcases": "[\"MaxQueue\",\"push_back\",\"push_back\",\"max_value\",\"pop_front\",\"max_value\"]\n[[],[1],[2],[],[],[]]\n[\"MaxQueue\",\"pop_front\",\"pop_front\",\"pop_front\",\"pop_front\",\"pop_front\",\"push_back\",\"max_value\",\"push_back\",\"max_value\"]\n[[],[],[],[],[],[],[15],[],[9],[]]",
"__typename": "QuestionNode"
}
}
}