1
0
mirror of https://gitee.com/coder-xiaomo/leetcode-problemset synced 2025-09-04 15:01:40 +08:00
Code Issues Projects Releases Wiki Activity GitHub Gitee
Files
leetcode-problemset/leetcode-cn/originData/trionic-array-ii.json
2025-08-10 21:35:14 +08:00

175 lines
29 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": "3956",
"questionFrontendId": "3640",
"categoryTitle": "Algorithms",
"boundTopicId": 3740138,
"title": "Trionic Array II",
"titleSlug": "trionic-array-ii",
"content": "<p data-end=\"191\" data-start=\"0\">You are given an integer array <code data-end=\"61\" data-start=\"55\">nums</code> of length <code data-end=\"75\" data-start=\"72\">n</code>.</p>\n\n<p data-end=\"191\" data-start=\"0\">A <strong data-end=\"99\" data-is-only-node=\"\" data-start=\"79\">trionic subarray</strong> is a contiguous subarray <code data-end=\"136\" data-start=\"125\">nums[l...r]</code> (with <code data-end=\"158\" data-start=\"143\">0 &lt;= l &lt; r &lt; n</code>) for which there exist indices <code>l &lt; p &lt; q &lt; r</code> such that:</p>\n\n<ul>\n\t<li data-end=\"267\" data-start=\"230\"><code data-end=\"241\" data-start=\"230\">nums[l...p]</code> is <strong>strictly</strong> increasing,</li>\n\t<li data-end=\"307\" data-start=\"270\"><code data-end=\"281\" data-start=\"270\">nums[p...q]</code> is <strong>strictly</strong> decreasing,</li>\n\t<li data-end=\"347\" data-start=\"310\"><code data-end=\"321\" data-start=\"310\">nums[q...r]</code> is <strong>strictly</strong> increasing.</li>\n</ul>\n\n<p data-end=\"609\" data-is-last-node=\"\" data-is-only-node=\"\" data-start=\"349\">Return the <strong>maximum</strong> sum of any trionic subarray in <code data-end=\"417\" data-start=\"411\">nums</code>.</p>\n\n<p>&nbsp;</p>\n<p><strong class=\"example\">Example 1:</strong></p>\n\n<div class=\"example-block\">\n<p><strong>Input:</strong> <span class=\"example-io\">nums = [0,-2,-1,-3,0,2,-1]</span></p>\n\n<p><strong>Output:</strong> <span class=\"example-io\">-4</span></p>\n\n<p><strong>Explanation:</strong></p>\n\n<p data-end=\"129\" data-start=\"72\">Pick <code data-end=\"99\" data-start=\"92\">l = 1</code>, <code data-end=\"108\" data-start=\"101\">p = 2</code>, <code data-end=\"117\" data-start=\"110\">q = 3</code>, <code data-end=\"126\" data-start=\"119\">r = 5</code>:</p>\n\n<ul>\n\t<li data-end=\"203\" data-start=\"132\"><code data-end=\"166\" data-start=\"132\">nums[l...p] = nums[1...2] = [-2, -1]</code> is strictly increasing (<code data-end=\"200\" data-start=\"191\">-2 &lt; -1</code>).</li>\n\t<li data-end=\"277\" data-start=\"206\"><code data-end=\"240\" data-start=\"206\">nums[p...q] = nums[2...3] = [-1, -3]</code> is strictly decreasing (<code data-end=\"274\" data-start=\"265\">-1 &gt; -3</code>)</li>\n\t<li data-end=\"396\" data-start=\"280\"><code data-end=\"316\" data-start=\"280\">nums[q...r] = nums[3...5] = [-3, 0, 2]</code> is strictly increasing (<code data-end=\"353\" data-start=\"341\">-3 &lt; 0 &lt; 2</code>).</li>\n\t<li data-end=\"396\" data-start=\"280\">Sum = <code>(-2) + (-1) + (-3) + 0 + 2 = -4</code>.</li>\n</ul>\n</div>\n\n<p><strong class=\"example\">Example 2:</strong></p>\n\n<div class=\"example-block\">\n<p><strong>Input:</strong> <span class=\"example-io\">nums = [1,4,2,7]</span></p>\n\n<p><strong>Output:</strong> <span class=\"example-io\">14</span></p>\n\n<p><strong>Explanation:</strong></p>\n\n<p data-end=\"519\" data-start=\"462\">Pick <code data-end=\"489\" data-start=\"482\">l = 0</code>, <code data-end=\"498\" data-start=\"491\">p = 1</code>, <code data-end=\"507\" data-start=\"500\">q = 2</code>, <code data-end=\"516\" data-start=\"509\">r = 3</code>:</p>\n\n<ul>\n\t<li data-end=\"589\" data-start=\"522\"><code data-end=\"554\" data-start=\"522\">nums[l...p] = nums[0...1] = [1, 4]</code> is strictly increasing (<code data-end=\"586\" data-start=\"579\">1 &lt; 4</code>).</li>\n\t<li data-end=\"659\" data-start=\"592\"><code data-end=\"624\" data-start=\"592\">nums[p...q] = nums[1...2] = [4, 2]</code> is strictly decreasing (<code data-end=\"656\" data-start=\"649\">4 &gt; 2</code>).</li>\n\t<li data-end=\"754\" data-is-last-node=\"\" data-start=\"662\"><code data-end=\"694\" data-start=\"662\">nums[q...r] = nums[2...3] = [2, 7]</code> is strictly increasing (<code data-end=\"726\" data-start=\"719\">2 &lt; 7</code>).</li>\n\t<li data-end=\"754\" data-is-last-node=\"\" data-start=\"662\">Sum = <code>1 + 4 + 2 + 7 = 14</code>.</li>\n</ul>\n</div>\n\n<p>&nbsp;</p>\n<p><strong>Constraints:</strong></p>\n\n<ul>\n\t<li data-end=\"883\" data-start=\"851\"><code data-end=\"881\" data-start=\"851\">4 &lt;= n = nums.length &lt;= 10<sup>5</sup></code></li>\n\t<li data-end=\"914\" data-start=\"886\"><code data-end=\"912\" data-start=\"886\">-10<sup>9</sup> &lt;= nums[i] &lt;= 10<sup>9</sup></code></li>\n\t<li data-end=\"978\" data-is-last-node=\"\" data-start=\"917\">It is guaranteed that at least one trionic subarray exists.</li>\n</ul>\n",
"translatedTitle": "三段式数组 II",
"translatedContent": "<p data-end=\"191\" data-start=\"0\">给你一个长度为 <code data-end=\"75\" data-start=\"72\">n</code> 的整数数组 <code data-end=\"61\" data-start=\"55\">nums</code>。</p>\n\n<p data-end=\"191\" data-start=\"0\"><strong data-end=\"99\" data-is-only-node=\"\" data-start=\"79\">三段式子数组</strong> 是一个连续子数组 <code data-end=\"136\" data-start=\"125\">nums[l...r]</code>(满足 <code data-end=\"158\" data-start=\"143\">0 &lt;= l &lt; r &lt; n</code>),并且存在下标&nbsp;<code>l &lt; p &lt; q &lt; r</code>,使得:</p>\n\n<ul>\n\t<li data-end=\"267\" data-start=\"230\"><code data-end=\"241\" data-start=\"230\">nums[l...p]</code> <strong>严格</strong> 递增,</li>\n\t<li data-end=\"307\" data-start=\"270\"><code data-end=\"281\" data-start=\"270\">nums[p...q]</code> <strong>严格</strong> 递减,</li>\n\t<li data-end=\"347\" data-start=\"310\"><code data-end=\"321\" data-start=\"310\">nums[q...r]</code> <strong>严格</strong> 递增。</li>\n</ul>\n\n<p data-end=\"609\" data-is-last-node=\"\" data-is-only-node=\"\" data-start=\"349\">请你从数组 <code data-end=\"417\" data-start=\"411\">nums</code>&nbsp;的所有三段式子数组中找出和最大的那个,并返回其&nbsp;<strong>最大&nbsp;</strong>和。</p>\n\n<p>&nbsp;</p>\n\n<p><strong class=\"example\">示例 1</strong></p>\n\n<div class=\"example-block\">\n<p><strong>输入:</strong><span class=\"example-io\">nums = [0,-2,-1,-3,0,2,-1]</span></p>\n\n<p><strong>输出:</strong><span class=\"example-io\">-4</span></p>\n\n<p><strong>解释:</strong></p>\n\n<p data-end=\"129\" data-start=\"72\">选择 <code data-end=\"99\" data-start=\"92\">l = 1</code>, <code data-end=\"108\" data-start=\"101\">p = 2</code>, <code data-end=\"117\" data-start=\"110\">q = 3</code>, <code data-end=\"126\" data-start=\"119\">r = 5</code></p>\n\n<ul>\n\t<li data-end=\"203\" data-start=\"132\"><code data-end=\"166\" data-start=\"132\">nums[l...p] = nums[1...2] = [-2, -1]</code> 严格递增&nbsp;(<code data-end=\"200\" data-start=\"191\">-2 &lt; -1</code>)。</li>\n\t<li data-end=\"277\" data-start=\"206\"><code data-end=\"240\" data-start=\"206\">nums[p...q] = nums[2...3] = [-1, -3]</code> 严格递减&nbsp;(<code data-end=\"274\" data-start=\"265\">-1 &gt; -3</code>)。</li>\n\t<li data-end=\"396\" data-start=\"280\"><code data-end=\"316\" data-start=\"280\">nums[q...r] = nums[3...5] = [-3, 0, 2]</code> 严格递增&nbsp;(<code data-end=\"353\" data-start=\"341\">-3 &lt; 0 &lt; 2</code>)。</li>\n\t<li data-end=\"396\" data-start=\"280\">和 = <code>(-2) + (-1) + (-3) + 0 + 2 = -4</code>。</li>\n</ul>\n</div>\n\n<p><strong class=\"example\">示例 2:</strong></p>\n\n<div class=\"example-block\">\n<p><strong>输入:</strong> <span class=\"example-io\">nums = [1,4,2,7]</span></p>\n\n<p><strong>输出:</strong> <span class=\"example-io\">14</span></p>\n\n<p><strong>解释:</strong></p>\n\n<p data-end=\"519\" data-start=\"462\">选择 <code data-end=\"489\" data-start=\"482\">l = 0</code>, <code data-end=\"498\" data-start=\"491\">p = 1</code>, <code data-end=\"507\" data-start=\"500\">q = 2</code>, <code data-end=\"516\" data-start=\"509\">r = 3</code></p>\n\n<ul>\n\t<li data-end=\"589\" data-start=\"522\"><code data-end=\"554\" data-start=\"522\">nums[l...p] = nums[0...1] = [1, 4]</code> 严格递增&nbsp;(<code data-end=\"586\" data-start=\"579\">1 &lt; 4</code>)。</li>\n\t<li data-end=\"659\" data-start=\"592\"><code data-end=\"624\" data-start=\"592\">nums[p...q] = nums[1...2] = [4, 2]</code> 严格递减&nbsp;(<code data-end=\"656\" data-start=\"649\">4 &gt; 2</code>)。</li>\n\t<li data-end=\"754\" data-is-last-node=\"\" data-start=\"662\"><code data-end=\"694\" data-start=\"662\">nums[q...r] = nums[2...3] = [2, 7]</code> 严格递增&nbsp;(<code data-end=\"726\" data-start=\"719\">2 &lt; 7</code>)。</li>\n\t<li data-end=\"754\" data-is-last-node=\"\" data-start=\"662\">和 = <code>1 + 4 + 2 + 7 = 14</code>。</li>\n</ul>\n</div>\n\n<p>&nbsp;</p>\n\n<p><strong>提示:</strong></p>\n\n<ul>\n\t<li data-end=\"883\" data-start=\"851\"><code data-end=\"881\" data-start=\"851\">4 &lt;= n = nums.length &lt;= 10<sup>5</sup></code></li>\n\t<li data-end=\"914\" data-start=\"886\"><code data-end=\"912\" data-start=\"886\">-10<sup>9</sup> &lt;= nums[i] &lt;= 10<sup>9</sup></code></li>\n\t<li data-end=\"978\" data-is-last-node=\"\" data-start=\"917\">保证至少存在一个三段式子数组。</li>\n</ul>\n",
"isPaidOnly": false,
"difficulty": "Hard",
"likes": 1,
"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, \"cangjie\": false}",
"topicTags": [],
"companyTagStats": null,
"codeSnippets": [
{
"lang": "C++",
"langSlug": "cpp",
"code": "class Solution {\npublic:\n long long maxSumTrionic(vector<int>& nums) {\n \n }\n};",
"__typename": "CodeSnippetNode"
},
{
"lang": "Java",
"langSlug": "java",
"code": "class Solution {\n public long maxSumTrionic(int[] nums) {\n \n }\n}",
"__typename": "CodeSnippetNode"
},
{
"lang": "Python",
"langSlug": "python",
"code": "class Solution(object):\n def maxSumTrionic(self, nums):\n \"\"\"\n :type nums: List[int]\n :rtype: int\n \"\"\"\n ",
"__typename": "CodeSnippetNode"
},
{
"lang": "Python3",
"langSlug": "python3",
"code": "class Solution:\n def maxSumTrionic(self, nums: List[int]) -> int:\n ",
"__typename": "CodeSnippetNode"
},
{
"lang": "C",
"langSlug": "c",
"code": "long long maxSumTrionic(int* nums, int numsSize) {\n \n}",
"__typename": "CodeSnippetNode"
},
{
"lang": "C#",
"langSlug": "csharp",
"code": "public class Solution {\n public long MaxSumTrionic(int[] nums) {\n \n }\n}",
"__typename": "CodeSnippetNode"
},
{
"lang": "JavaScript",
"langSlug": "javascript",
"code": "/**\n * @param {number[]} nums\n * @return {number}\n */\nvar maxSumTrionic = function(nums) {\n \n};",
"__typename": "CodeSnippetNode"
},
{
"lang": "TypeScript",
"langSlug": "typescript",
"code": "function maxSumTrionic(nums: number[]): number {\n \n};",
"__typename": "CodeSnippetNode"
},
{
"lang": "PHP",
"langSlug": "php",
"code": "class Solution {\n\n /**\n * @param Integer[] $nums\n * @return Integer\n */\n function maxSumTrionic($nums) {\n \n }\n}",
"__typename": "CodeSnippetNode"
},
{
"lang": "Swift",
"langSlug": "swift",
"code": "class Solution {\n func maxSumTrionic(_ nums: [Int]) -> Int {\n \n }\n}",
"__typename": "CodeSnippetNode"
},
{
"lang": "Kotlin",
"langSlug": "kotlin",
"code": "class Solution {\n fun maxSumTrionic(nums: IntArray): Long {\n \n }\n}",
"__typename": "CodeSnippetNode"
},
{
"lang": "Dart",
"langSlug": "dart",
"code": "class Solution {\n int maxSumTrionic(List<int> nums) {\n \n }\n}",
"__typename": "CodeSnippetNode"
},
{
"lang": "Go",
"langSlug": "golang",
"code": "func maxSumTrionic(nums []int) int64 {\n \n}",
"__typename": "CodeSnippetNode"
},
{
"lang": "Ruby",
"langSlug": "ruby",
"code": "# @param {Integer[]} nums\n# @return {Integer}\ndef max_sum_trionic(nums)\n \nend",
"__typename": "CodeSnippetNode"
},
{
"lang": "Scala",
"langSlug": "scala",
"code": "object Solution {\n def maxSumTrionic(nums: Array[Int]): Long = {\n \n }\n}",
"__typename": "CodeSnippetNode"
},
{
"lang": "Rust",
"langSlug": "rust",
"code": "impl Solution {\n pub fn max_sum_trionic(nums: Vec<i32>) -> i64 {\n \n }\n}",
"__typename": "CodeSnippetNode"
},
{
"lang": "Racket",
"langSlug": "racket",
"code": "(define/contract (max-sum-trionic nums)\n (-> (listof exact-integer?) exact-integer?)\n )",
"__typename": "CodeSnippetNode"
},
{
"lang": "Erlang",
"langSlug": "erlang",
"code": "-spec max_sum_trionic(Nums :: [integer()]) -> integer().\nmax_sum_trionic(Nums) ->\n .",
"__typename": "CodeSnippetNode"
},
{
"lang": "Elixir",
"langSlug": "elixir",
"code": "defmodule Solution do\n @spec max_sum_trionic(nums :: [integer]) :: integer\n def max_sum_trionic(nums) do\n \n end\nend",
"__typename": "CodeSnippetNode"
},
{
"lang": "Cangjie",
"langSlug": "cangjie",
"code": "class Solution {\n func maxSumTrionic(nums: Array<Int64>): Int64 {\n\n }\n}",
"__typename": "CodeSnippetNode"
}
],
"stats": "{\"totalAccepted\": \"1.3K\", \"totalSubmission\": \"3.1K\", \"totalAcceptedRaw\": 1300, \"totalSubmissionRaw\": 3066, \"acRate\": \"42.4%\"}",
"hints": [
"Use dynamic programming",
"Let four arrays <code>dp0...dp3</code> where <code>dpk[i]</code> is the max sum of a subarray ending at <code>i</code> after finishing <code>k</code> of the four phases (start -> inc -> dec -> inc)",
"Process each <code>i>0</code>",
"If <code>nums[i]>nums[i1]</code>, set <code>dp1[i]=max(dp1[i1]+nums[i], dp0[i1]+nums[i])</code>, <code>dp3[i]=max(dp3[i1]+nums[i], dp2[i1]+nums[i])</code>",
"If <code>nums[i]<nums[i1]</code>, set <code>dp2[i]=max(dp2[i1]+nums[i], dp1[i1]+nums[i])</code>",
"Always carry over <code>dp0[i]=dp0[i1]+nums[i]</code> when <code>nums[i]>nums[i1]</code>",
"Return the maximum value in <code>dp3</code>"
],
"solution": null,
"status": null,
"sampleTestCase": "[0,-2,-1,-3,0,2,-1]",
"metaData": "{\n \"name\": \"maxSumTrionic\",\n \"params\": [\n {\n \"name\": \"nums\",\n \"type\": \"integer[]\"\n }\n ],\n \"return\": {\n \"type\": \"long\"\n }\n}",
"judgerAvailable": true,
"judgeType": "large",
"mysqlSchemas": [],
"enableRunCode": true,
"envInfo": "{\"cpp\":[\"C++\",\"<p>\\u7248\\u672c\\uff1a<code>clang 19<\\/code> \\u91c7\\u7528\\u6700\\u65b0 C++ 23 \\u6807\\u51c6\\uff0c\\u5e76\\u4f7f\\u7528 GCC 14 \\u63d0\\u4f9b\\u7684 <code>libstdc++<\\/code>\\u3002<\\/p>\\r\\n\\r\\n<p>\\u7f16\\u8bd1\\u65f6\\uff0c\\u5c06\\u4f1a\\u91c7\\u7528 <code>-O2<\\/code> \\u7ea7\\u4f18\\u5316\\uff0c\\u5e76\\u63d0\\u4f9b <code>-gline-tables-only<\\/code> \\u53c2\\u6570\\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 21<\\/code>\\u3002\\u4f7f\\u7528\\u7f16\\u8bd1\\u53c2\\u6570 <code>--enable-preview --release 21<\\/code><\\/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.18<\\/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\\\">\\u5df2\\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 14<\\/code>\\uff0c\\u91c7\\u7528 GNU11 \\u6807\\u51c6\\u3002<\\/p>\\r\\n\\r\\n<p>\\u7f16\\u8bd1\\u65f6\\uff0c\\u5c06\\u4f1a\\u91c7\\u7528 <code>-O2<\\/code> \\u7ea7\\u4f18\\u5316\\uff0c\\u5e76\\u63d0\\u4f9b <code>-g1<\\/code> \\u53c2\\u6570\\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:\\/\\/learn.microsoft.com\\/en-us\\/dotnet\\/csharp\\/whats-new\\/csharp-13\\\" target=\\\"_blank\\\">C# 13<\\/a> \\u8fd0\\u884c\\u5728 .NET 9 \\u4e0a<\\/p>\"],\"javascript\":[\"JavaScript\",\"<p>\\u7248\\u672c\\uff1a<code>Node.js 22.14.0<\\/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\\/c044606839de82cdc796326a130d4090c0b01504\\\" target=\\\"_blank\\\"> datastructures-js\\/priority-queue@6.3.2<\\/a>\\uff0c<a href=\\\"https:\\/\\/github.com\\/datastructures-js\\/queue\\/tree\\/v4.2.3\\\" target=\\\"_blank\\\"> datastructures-js\\/queue@4.2.3<\\/a> \\u4ee5\\u53ca <a href=\\\"https:\\/\\/github.com\\/datastructures-js\\/deque\\/tree\\/v1.0.4\\\" target=\\\"_blank\\\"> datastructures-js\\/deque@1.0.4<\\/a>\\u3002<\\/p>\"],\"ruby\":[\"Ruby\",\"<p>\\u4f7f\\u7528 <code>Ruby 3.2<\\/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 6.0<\\/code><\\/p>\\r\\n\\r\\n<p>\\u60a8\\u53ef\\u4ee5\\u4f7f\\u7528 <a href=\\\"https:\\/\\/github.com\\/apple\\/swift-algorithms\\/tree\\/1.2.0\\\" target=\\\"_blank\\\">swift-algorithms 1.2.0<\\/a>\\uff0c<a href=\\\"https:\\/\\/github.com\\/apple\\/swift-collections\\/tree\\/1.1.4\\\" target=\\\"_blank\\\">swift-collections 1.1.4<\\/a> \\u548c <a href=\\\"https:\\/\\/github.com\\/apple\\/swift-numerics\\/tree\\/1.0.2\\\" target=\\\"_blank\\\">swift-numerics 1.0.2<\\/a><\\/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.23<\\/code><\\/p>\\r\\n\\r\\n<p>\\u652f\\u6301 <a href=\\\"https:\\/\\/pkg.go.dev\\/github.com\\/emirpasic\\/gods@v1.18.1\\\" target=\\\"_blank\\\">https:\\/\\/pkg.go.dev\\/github.com\\/emirpasic\\/gods@v1.18.1<\\/a> \\u548c <a href=\\\"https:\\/\\/pkg.go.dev\\/github.com\\/emirpasic\\/gods\\/v2@v2.0.0-alpha\\\" target=\\\"_blank\\\">https:\\/\\/pkg.go.dev\\/github.com\\/emirpasic\\/gods\\/v2@v2.0.0-alpha<\\/a> \\u7b2c\\u4e09\\u65b9\\u5e93\\u3002<\\/p>\"],\"python3\":[\"Python3\",\"<p>\\u7248\\u672c\\uff1a<code>Python 3.11<\\/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 3.3.1<\\/code><\\/p>\"],\"kotlin\":[\"Kotlin\",\"<p>\\u7248\\u672c\\uff1a<code>Kotlin 2.1.10<\\/code><\\/p>\"],\"rust\":[\"Rust\",\"<p>\\u7248\\u672c\\uff1a<code>rust 1.88.0<\\/code>\\uff0c\\u4f7f\\u7528 edition 2024\\u3002<\\/p>\\r\\n\\r\\n<p>\\u652f\\u6301 crates.io \\u7684 <a href=\\\"https:\\/\\/crates.io\\/crates\\/rand\\\" target=\\\"_blank\\\">rand<\\/a>\\u3001<a href=\\\"https:\\/\\/crates.io\\/crates\\/regex\\\" target=\\\"_blank\\\">regex<\\/a> \\u548c <a href=\\\"https:\\/\\/crates.io\\/crates\\/itertools\\\" target=\\\"_blank\\\">itertools<\\/a><\\/p>\"],\"php\":[\"PHP\",\"<p><code>PHP 8.2<\\/code>.<\\/p>\\r\\n\\r\\n<p>With bcmath module.<\\/p>\"],\"typescript\":[\"TypeScript\",\"<p>TypeScript 5.7.3<\\/p>\\r\\n\\r\\n<p>Compile Options: --alwaysStrict --strictBindCallApply --strictFunctionTypes --target ES2024<\\/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\\/c044606839de82cdc796326a130d4090c0b01504\\\" target=\\\"_blank\\\"> datastructures-js\\/priority-queue@6.3.2<\\/a>\\uff0c<a href=\\\"https:\\/\\/github.com\\/datastructures-js\\/queue\\/tree\\/v4.2.3\\\" target=\\\"_blank\\\"> datastructures-js\\/queue@4.2.3<\\/a> \\u4ee5\\u53ca <a href=\\\"https:\\/\\/github.com\\/datastructures-js\\/deque\\/tree\\/v1.0.4\\\" target=\\\"_blank\\\"> datastructures-js\\/deque@1.0.4<\\/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.15<\\/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 26\"],\"elixir\":[\"Elixir\",\"Elixir 1.17 with Erlang\\/OTP 26\"],\"dart\":[\"Dart\",\"<p>Dart 3.2\\u3002\\u60a8\\u53ef\\u4ee5\\u4f7f\\u7528 <a href=\\\"https:\\/\\/pub.dev\\/packages\\/collection\\/versions\\/1.18.0\\\" target=\\\"_blank\\\">collection<\\/a> \\u5305<\\/p>\\r\\n\\r\\n<p>\\u60a8\\u7684\\u4ee3\\u7801\\u5c06\\u4f1a\\u88ab\\u4e0d\\u7f16\\u8bd1\\u76f4\\u63a5\\u8fd0\\u884c<\\/p>\"],\"cangjie\":[\"Cangjie\",\"<p>\\u7248\\u672c\\uff1a1.0.0 LTS (cjnative)<\\/p>\\r\\n\\r\\n<p>\\u7f16\\u8bd1\\u53c2\\u6570\\uff1a<code>-O2 --disable-reflection<\\/code><\\/p>\\r\\n\\r\\n<p>\\u5feb\\u901f\\u5165\\u95e8\\u8bf7\\u67e5\\u9605<a href=\\\"https:\\/\\/leetcode.cn\\/leetbook\\/detail\\/cangjie\\/\\\" target=\\\"_blank\\\">\\u300c\\u4ed3\\u9889\\u7f16\\u7a0b\\u8bed\\u8a00\\u5f00\\u53d1\\u6307\\u5357\\u300d<\\/a><\\/p>\"]}",
"book": null,
"isSubscribed": false,
"isDailyQuestion": false,
"dailyRecordStatus": null,
"editorType": "CKEDITOR",
"ugcQuestionId": null,
"style": "LEETCODE",
"exampleTestcases": "[0,-2,-1,-3,0,2,-1]\n[1,4,2,7]",
"__typename": "QuestionNode"
}
}
}