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/dui-lie-de-zui-da-zhi-lcof.json
2023-12-09 19:57:46 +08:00

180 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": "LCR 184",
"categoryTitle": "Algorithms",
"boundTopicId": 88051,
"title": "设计自助结算系统",
"titleSlug": "dui-lie-de-zui-da-zhi-lcof",
"content": "<p>English description is not available for the problem. Please switch to Chinese.</p>\r\n",
"translatedTitle": "设计自助结算系统",
"translatedContent": "<p>请设计一个自助结账系统,该系统需要通过一个队列来模拟顾客通过购物车的结算过程,需要实现的功能有:</p>\n\n<ul>\n\t<li><code>get_max()</code>:获取结算商品中的最高价格,如果队列为空,则返回 -1</li>\n\t<li><code>add(value)</code>:将价格为 <code>value</code> 的商品加入待结算商品队列的尾部</li>\n\t<li><code>remove()</code>:移除第一个待结算的商品价格,如果队列为空,则返回 -1</li>\n</ul>\n\n<p>注意,为保证该系统运转高效性,以上函数的均摊时间复杂度均为 O(1)</p>\n\n<p>&nbsp;</p>\n\n<p><strong>示例 1</strong></p>\n\n<pre>\n输入: \n[\"Checkout\",\"add\",\"add\",\"get_max\",\"remove\",\"get_max\"]\n[[],[4],[7],[],[],[]]\n\n输出: [null,null,null,7,4,7]\n</pre>\n\n<p><strong>示例 2</strong></p>\n\n<pre>\n输入: \n[\"Checkout\",\"remove\",\"get_max\"]\n[[],[],[]]\n\n输出: [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;= get_max, add, remove 的总操作数&nbsp;&lt;= 10000</code></li>\n\t<li><code>1 &lt;= value &lt;= 10^5</code></li>\n</ul>\n\n<p>&nbsp;</p>\n",
"isPaidOnly": false,
"difficulty": "Medium",
"likes": 521,
"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, \"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": "Monotonic Queue",
"slug": "monotonic-queue",
"translatedName": "单调队列",
"__typename": "TopicTagNode"
}
],
"companyTagStats": null,
"codeSnippets": [
{
"lang": "C++",
"langSlug": "cpp",
"code": "class Checkout {\npublic:\n Checkout() {\n\n }\n \n int get_max() {\n\n }\n \n void add(int value) {\n\n }\n \n int remove() {\n\n }\n};\n\n/**\n * Your Checkout object will be instantiated and called as such:\n * Checkout* obj = new Checkout();\n * int param_1 = obj->get_max();\n * obj->add(value);\n * int param_3 = obj->remove();\n */",
"__typename": "CodeSnippetNode"
},
{
"lang": "Java",
"langSlug": "java",
"code": "class Checkout {\n\n public Checkout() {\n\n }\n \n public int get_max() {\n\n }\n \n public void add(int value) {\n\n }\n \n public int remove() {\n\n }\n}\n\n/**\n * Your Checkout object will be instantiated and called as such:\n * Checkout obj = new Checkout();\n * int param_1 = obj.get_max();\n * obj.add(value);\n * int param_3 = obj.remove();\n */",
"__typename": "CodeSnippetNode"
},
{
"lang": "Python",
"langSlug": "python",
"code": "class Checkout(object):\n\n def __init__(self):\n\n\n def get_max(self):\n \"\"\"\n :rtype: int\n \"\"\"\n\n\n def add(self, value):\n \"\"\"\n :type value: int\n :rtype: None\n \"\"\"\n\n\n def remove(self):\n \"\"\"\n :rtype: int\n \"\"\"\n\n\n\n# Your Checkout object will be instantiated and called as such:\n# obj = Checkout()\n# param_1 = obj.get_max()\n# obj.add(value)\n# param_3 = obj.remove()",
"__typename": "CodeSnippetNode"
},
{
"lang": "Python3",
"langSlug": "python3",
"code": "class Checkout:\n\n def __init__(self):\n\n\n def get_max(self) -> int:\n\n\n def add(self, value: int) -> None:\n\n\n def remove(self) -> int:\n\n\n\n# Your Checkout object will be instantiated and called as such:\n# obj = Checkout()\n# param_1 = obj.get_max()\n# obj.add(value)\n# param_3 = obj.remove()",
"__typename": "CodeSnippetNode"
},
{
"lang": "C",
"langSlug": "c",
"code": "\n\n\ntypedef struct {\n \n} Checkout;\n\n\nCheckout* checkoutCreate() {\n \n}\n\nint checkoutGet_max(Checkout* obj) {\n \n}\n\nvoid checkoutAdd(Checkout* obj, int value) {\n \n}\n\nint checkoutRemove(Checkout* obj) {\n \n}\n\nvoid checkoutFree(Checkout* obj) {\n \n}\n\n/**\n * Your Checkout struct will be instantiated and called as such:\n * Checkout* obj = checkoutCreate();\n * int param_1 = checkoutGet_max(obj);\n \n * checkoutAdd(obj, value);\n \n * int param_3 = checkoutRemove(obj);\n \n * checkoutFree(obj);\n*/",
"__typename": "CodeSnippetNode"
},
{
"lang": "C#",
"langSlug": "csharp",
"code": "public class Checkout {\n\n public Checkout() {\n\n }\n \n public int Get_max() {\n\n }\n \n public void Add(int value) {\n\n }\n \n public int Remove() {\n\n }\n}\n\n/**\n * Your Checkout object will be instantiated and called as such:\n * Checkout obj = new Checkout();\n * int param_1 = obj.Get_max();\n * obj.Add(value);\n * int param_3 = obj.Remove();\n */",
"__typename": "CodeSnippetNode"
},
{
"lang": "JavaScript",
"langSlug": "javascript",
"code": "\nvar Checkout = function() {\n\n};\n\n/**\n * @return {number}\n */\nCheckout.prototype.get_max = function() {\n\n};\n\n/** \n * @param {number} value\n * @return {void}\n */\nCheckout.prototype.add = function(value) {\n\n};\n\n/**\n * @return {number}\n */\nCheckout.prototype.remove = function() {\n\n};\n\n/**\n * Your Checkout object will be instantiated and called as such:\n * var obj = new Checkout()\n * var param_1 = obj.get_max()\n * obj.add(value)\n * var param_3 = obj.remove()\n */",
"__typename": "CodeSnippetNode"
},
{
"lang": "TypeScript",
"langSlug": "typescript",
"code": "class Checkout {\n constructor() {\n \n }\n\n get_max(): number {\n \n }\n\n add(value: number): void {\n \n }\n\n remove(): number {\n \n }\n}\n\n/**\n * Your Checkout object will be instantiated and called as such:\n * var obj = new Checkout()\n * var param_1 = obj.get_max()\n * obj.add(value)\n * var param_3 = obj.remove()\n */",
"__typename": "CodeSnippetNode"
},
{
"lang": "PHP",
"langSlug": "php",
"code": "class Checkout {\n /**\n */\n function __construct() {\n\n }\n\n /**\n * @return Integer\n */\n function get_max() {\n\n }\n\n /**\n * @param Integer $value\n * @return NULL\n */\n function add($value) {\n\n }\n\n /**\n * @return Integer\n */\n function remove() {\n\n }\n}\n\n/**\n * Your Checkout object will be instantiated and called as such:\n * $obj = Checkout();\n * $ret_1 = $obj->get_max();\n * $obj->add($value);\n * $ret_3 = $obj->remove();\n */",
"__typename": "CodeSnippetNode"
},
{
"lang": "Swift",
"langSlug": "swift",
"code": "\nclass Checkout {\n\n init() {\n\n }\n \n func get_max() -> Int {\n\n }\n \n func add(_ value: Int) {\n\n }\n \n func remove() -> Int {\n\n }\n}\n\n/**\n * Your Checkout object will be instantiated and called as such:\n * let obj = Checkout()\n * let ret_1: Int = obj.get_max()\n * obj.add(value)\n * let ret_3: Int = obj.remove()\n */",
"__typename": "CodeSnippetNode"
},
{
"lang": "Kotlin",
"langSlug": "kotlin",
"code": "class Checkout() {\n\n fun get_max(): Int {\n\n }\n\n fun add(value: Int) {\n\n }\n\n fun remove(): Int {\n\n }\n\n}\n\n/**\n * Your Checkout object will be instantiated and called as such:\n * var obj = Checkout()\n * var param_1 = obj.get_max()\n * obj.add(value)\n * var param_3 = obj.remove()\n */",
"__typename": "CodeSnippetNode"
},
{
"lang": "Dart",
"langSlug": "dart",
"code": "class Checkout {\n\n Checkout() {\n \n }\n \n int get_max() {\n \n }\n \n void add(int value) {\n \n }\n \n int remove() {\n \n }\n}\n\n/**\n * Your Checkout object will be instantiated and called as such:\n * Checkout obj = Checkout();\n * int param1 = obj.get_max();\n * obj.add(value);\n * int param3 = obj.remove();\n */",
"__typename": "CodeSnippetNode"
},
{
"lang": "Go",
"langSlug": "golang",
"code": "type Checkout struct {\n\n}\n\n\nfunc Constructor() Checkout {\n\n}\n\n\nfunc (this *Checkout) Get_max() int {\n\n}\n\n\nfunc (this *Checkout) Add(value int) {\n\n}\n\n\nfunc (this *Checkout) Remove() int {\n\n}\n\n\n/**\n * Your Checkout object will be instantiated and called as such:\n * obj := Constructor();\n * param_1 := obj.Get_max();\n * obj.Add(value);\n * param_3 := obj.Remove();\n */",
"__typename": "CodeSnippetNode"
},
{
"lang": "Ruby",
"langSlug": "ruby",
"code": "class Checkout\n def initialize()\n\n end\n\n\n=begin\n :rtype: Integer\n=end\n def get_max()\n\n end\n\n\n=begin\n :type value: Integer\n :rtype: Void\n=end\n def add(value)\n\n end\n\n\n=begin\n :rtype: Integer\n=end\n def remove()\n\n end\n\n\nend\n\n# Your Checkout object will be instantiated and called as such:\n# obj = Checkout.new()\n# param_1 = obj.get_max()\n# obj.add(value)\n# param_3 = obj.remove()",
"__typename": "CodeSnippetNode"
},
{
"lang": "Scala",
"langSlug": "scala",
"code": "class Checkout() {\n\n def get_max(): Int = {\n\n }\n\n def add(value: Int) {\n\n }\n\n def remove(): Int = {\n\n }\n\n}\n\n/**\n * Your Checkout object will be instantiated and called as such:\n * var obj = new Checkout()\n * var param_1 = obj.get_max()\n * obj.add(value)\n * var param_3 = obj.remove()\n */",
"__typename": "CodeSnippetNode"
},
{
"lang": "Rust",
"langSlug": "rust",
"code": "struct Checkout {\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 Checkout {\n\n fn new() -> Self {\n\n }\n \n fn get_max(&self) -> i32 {\n\n }\n \n fn add(&self, value: i32) {\n\n }\n \n fn remove(&self) -> i32 {\n\n }\n}\n\n/**\n * Your Checkout object will be instantiated and called as such:\n * let obj = Checkout::new();\n * let ret_1: i32 = obj.get_max();\n * obj.add(value);\n * let ret_3: i32 = obj.remove();\n */",
"__typename": "CodeSnippetNode"
},
{
"lang": "Racket",
"langSlug": "racket",
"code": "(define checkout%\n (class object%\n (super-new)\n \n (init-field)\n \n ; get_max : -> exact-integer?\n (define/public (get_max)\n )\n ; add : exact-integer? -> void?\n (define/public (add value)\n )\n ; remove : -> exact-integer?\n (define/public (remove)\n )))\n\n;; Your checkout% object will be instantiated and called as such:\n;; (define obj (new checkout%))\n;; (define param_1 (send obj get_max))\n;; (send obj add value)\n;; (define param_3 (send obj remove))",
"__typename": "CodeSnippetNode"
},
{
"lang": "Erlang",
"langSlug": "erlang",
"code": "-spec checkout_init_() -> any().\ncheckout_init_() ->\n .\n\n-spec checkout_get_max() -> integer().\ncheckout_get_max() ->\n .\n\n-spec checkout_add(Value :: integer()) -> any().\ncheckout_add(Value) ->\n .\n\n-spec checkout_remove() -> integer().\ncheckout_remove() ->\n .\n\n\n%% Your functions will be called as such:\n%% checkout_init_(),\n%% Param_1 = checkout_get_max(),\n%% checkout_add(Value),\n%% Param_3 = checkout_remove(),\n\n%% checkout_init_ will be called before every test case, in which you can do some necessary initializations.",
"__typename": "CodeSnippetNode"
},
{
"lang": "Elixir",
"langSlug": "elixir",
"code": "defmodule Checkout do\n @spec init_() :: any\n def init_() do\n \n end\n\n @spec get_max() :: integer\n def get_max() do\n \n end\n\n @spec add(value :: integer) :: any\n def add(value) do\n \n end\n\n @spec remove() :: integer\n def remove() do\n \n end\nend\n\n# Your functions will be called as such:\n# Checkout.init_()\n# param_1 = Checkout.get_max()\n# Checkout.add(value)\n# param_3 = Checkout.remove()\n\n# Checkout.init_ will be called before every test case, in which you can do some necessary initializations.",
"__typename": "CodeSnippetNode"
}
],
"stats": "{\"totalAccepted\": \"179.3K\", \"totalSubmission\": \"376.2K\", \"totalAcceptedRaw\": 179257, \"totalSubmissionRaw\": 376231, \"acRate\": \"47.6%\"}",
"hints": [],
"solution": null,
"status": null,
"sampleTestCase": "[\"Checkout\",\"add\",\"add\",\"get_max\",\"remove\",\"get_max\"]\n[[],[4],[7],[],[],[]]",
"metaData": "{\r\n \"classname\": \"Checkout\",\r\n \"maxbytesperline\": 200000,\r\n \"constructor\": {\r\n \"params\": [\r\n ]\r\n },\r\n \"methods\": [\r\n {\r\n \"name\" : \"get_max\",\r\n \"params\": [\r\n ],\r\n \"return\": {\r\n \"type\": \"integer\"\r\n }\r\n },\r\n {\r\n \"name\" : \"add\",\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\" : \"remove\",\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++ 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": "[\"Checkout\",\"add\",\"add\",\"get_max\",\"remove\",\"get_max\"]\n[[],[4],[7],[],[],[]]\n[\"Checkout\",\"remove\",\"get_max\"]\n[[],[],[]]",
"__typename": "QuestionNode"
}
}
}