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/network-recovery-pathways.json
2025-08-10 21:35:14 +08:00

214 lines
35 KiB
JSON
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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": "3919",
"questionFrontendId": "3620",
"categoryTitle": "Algorithms",
"boundTopicId": 3727223,
"title": "Network Recovery Pathways",
"titleSlug": "network-recovery-pathways",
"content": "<p data-end=\"502\" data-start=\"75\">You are given a directed acyclic graph of <code>n</code>nodes numbered from 0to<code>n&minus;1</code>. This is represented by a 2D array <code data-end=\"201\" data-start=\"194\">edges</code> of length<font face=\"monospace\"> <code>m</code></font>, where <code data-end=\"255\" data-start=\"227\">edges[i] = [u<sub>i</sub>, v<sub>i</sub>, cost<sub>i</sub>]</code> indicates a oneway communication from node<code data-end=\"304\" data-start=\"300\">u<sub>i</sub></code> to node<code data-end=\"317\" data-start=\"313\">v<sub>i</sub></code> with a recovery cost of<code data-end=\"349\" data-start=\"342\">cost<sub>i</sub></code>.</p>\n\n<p data-end=\"502\" data-start=\"75\">Some nodes may be offline. You are given a boolean array <code data-end=\"416\" data-start=\"408\">online</code> where <code data-end=\"441\" data-start=\"423\">online[i] = true</code> means node<code data-end=\"456\" data-start=\"453\">i</code> is online. Nodes 0 and <code>n&minus;1</code> are always online.</p>\n\n<p data-end=\"547\" data-start=\"504\">A path from 0to <code>n&minus;1</code> is <strong data-end=\"541\" data-start=\"532\">valid</strong> if:</p>\n\n<ul>\n\t<li>All intermediate nodes on the path are online.</li>\n\t<li data-end=\"676\" data-start=\"605\">The total recovery cost of all edges on the path does not exceed <code>k</code>.</li>\n</ul>\n\n<p data-end=\"771\" data-start=\"653\">For each valid path, define its <strong data-end=\"694\" data-start=\"685\">score</strong> as the minimum edgecost along that path.</p>\n\n<p data-end=\"913\" data-start=\"847\">Return the <strong>maximum</strong> path score (i.e., the largest <strong>minimum</strong>-edge cost) among all valid paths. If no valid path exists, return -1.</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\">edges = [[0,1,5],[1,3,10],[0,2,3],[2,3,4]], online = [true,true,true,true], k = 10</span></p>\n\n<p><strong>Output:</strong> <span class=\"example-io\">3</span></p>\n\n<p><strong>Explanation:</strong></p>\n\n<p><img alt=\"\" src=\"https://assets.leetcode.com/uploads/2025/06/06/graph-10.png\" style=\"width: 239px; height: 267px;\" /></p>\n\n<ul data-end=\"551\" data-start=\"146\">\n\t<li data-end=\"462\" data-start=\"146\">\n\t<p data-end=\"206\" data-start=\"148\">The graph has two possible routes from node 0 to node 3:</p>\n\n\t<ol data-end=\"462\" data-start=\"209\">\n\t\t<li data-end=\"315\" data-start=\"209\">\n\t\t<p data-end=\"228\" data-start=\"212\">Path <code>0 &rarr; 1 &rarr; 3</code></p>\n\n\t\t<ul data-end=\"315\" data-start=\"234\">\n\t\t\t<li data-end=\"315\" data-start=\"234\">\n\t\t\t<p data-end=\"315\" data-start=\"236\">Total cost = <code>5 + 10 = 15</code>, which exceeds k (<code>15 &gt; 10</code>), so this path is invalid.</p>\n\t\t\t</li>\n\t\t</ul>\n\t\t</li>\n\t\t<li data-end=\"462\" data-start=\"318\">\n\t\t<p data-end=\"337\" data-start=\"321\">Path <code>0 &rarr; 2 &rarr; 3</code></p>\n\n\t\t<ul data-end=\"462\" data-start=\"343\">\n\t\t\t<li data-end=\"397\" data-start=\"343\">\n\t\t\t<p data-end=\"397\" data-start=\"345\">Total cost = <code>3 + 4 = 7 &lt;= k</code>, so this path is valid.</p>\n\t\t\t</li>\n\t\t\t<li data-end=\"462\" data-start=\"403\">\n\t\t\t<p data-end=\"462\" data-start=\"405\">The minimum edgecost along this path is <code>min(3, 4) = 3</code>.</p>\n\t\t\t</li>\n\t\t</ul>\n\t\t</li>\n\t</ol>\n\t</li>\n\t<li data-end=\"551\" data-start=\"463\">\n\t<p data-end=\"551\" data-start=\"465\">There are no other valid paths. Hence, the maximum among all valid pathscores is 3.</p>\n\t</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\">edges = [[0,1,7],[1,4,5],[0,2,6],[2,3,6],[3,4,2],[2,4,6]], online = [true,true,true,false,true], k = 12</span></p>\n\n<p><strong>Output:</strong> <span class=\"example-io\">6</span></p>\n\n<p><strong>Explanation:</strong></p>\n\n<p><img alt=\"\" src=\"https://assets.leetcode.com/uploads/2025/06/06/graph-11.png\" style=\"width: 343px; height: 194px;\" /></p>\n\n<ul>\n\t<li data-end=\"790\" data-start=\"726\">\n\t<p data-end=\"790\" data-start=\"728\">Node 3 is offline, so any path passing through 3 is invalid.</p>\n\t</li>\n\t<li data-end=\"1231\" data-start=\"791\">\n\t<p data-end=\"837\" data-start=\"793\">Consider the remaining routes from 0 to 4:</p>\n\n\t<ol data-end=\"1231\" data-start=\"840\">\n\t\t<li data-end=\"985\" data-start=\"840\">\n\t\t<p data-end=\"859\" data-start=\"843\">Path <code>0 &rarr; 1 &rarr; 4</code></p>\n\n\t\t<ul data-end=\"985\" data-start=\"865\">\n\t\t\t<li data-end=\"920\" data-start=\"865\">\n\t\t\t<p data-end=\"920\" data-start=\"867\">Total cost = <code>7 + 5 = 12 &lt;= k</code>, so this path is valid.</p>\n\t\t\t</li>\n\t\t\t<li data-end=\"985\" data-start=\"926\">\n\t\t\t<p data-end=\"985\" data-start=\"928\">The minimum edgecost along this path is <code>min(7, 5) = 5</code>.</p>\n\t\t\t</li>\n\t\t</ul>\n\t\t</li>\n\t\t<li data-end=\"1083\" data-start=\"988\">\n\t\t<p data-end=\"1011\" data-start=\"991\">Path <code>0 &rarr; 2 &rarr; 3 &rarr; 4</code></p>\n\n\t\t<ul data-end=\"1083\" data-start=\"1017\">\n\t\t\t<li data-end=\"1083\" data-start=\"1017\">\n\t\t\t<p data-end=\"1083\" data-start=\"1019\">Node 3 is offline, so this path is invalid regardless of cost.</p>\n\t\t\t</li>\n\t\t</ul>\n\t\t</li>\n\t\t<li data-end=\"1231\" data-start=\"1086\">\n\t\t<p data-end=\"1105\" data-start=\"1089\">Path <code>0 &rarr; 2 &rarr; 4</code></p>\n\n\t\t<ul data-end=\"1231\" data-start=\"1111\">\n\t\t\t<li data-end=\"1166\" data-start=\"1111\">\n\t\t\t<p data-end=\"1166\" data-start=\"1113\">Total cost = <code>6 + 6 = 12 &lt;= k</code>, so this path is valid.</p>\n\t\t\t</li>\n\t\t\t<li data-end=\"1231\" data-start=\"1172\">\n\t\t\t<p data-end=\"1231\" data-start=\"1174\">The minimum edgecost along this path is <code>min(6, 6) = 6</code>.</p>\n\t\t\t</li>\n\t\t</ul>\n\t\t</li>\n\t</ol>\n\t</li>\n\t<li data-end=\"1314\" data-is-last-node=\"\" data-start=\"1232\">\n\t<p data-end=\"1314\" data-is-last-node=\"\" data-start=\"1234\">Among the two valid paths, their scores are 5 and 6. Therefore, the answer is 6.</p>\n\t</li>\n</ul>\n</div>\n\n<p>&nbsp;</p>\n<p><strong>Constraints:</strong></p>\n\n<ul>\n\t<li data-end=\"42\" data-start=\"20\"><code data-end=\"40\" data-start=\"20\">n == online.length</code></li>\n\t<li data-end=\"63\" data-start=\"45\"><code data-end=\"61\" data-start=\"45\">2 &lt;= n &lt;= 5 * 10<sup>4</sup></code></li>\n\t<li data-end=\"102\" data-start=\"66\"><code data-end=\"100\" data-start=\"66\">0 &lt;= m == edges.length &lt;= </code><code>min(10<sup>5</sup>, n * (n - 1) / 2)</code></li>\n\t<li data-end=\"102\" data-start=\"66\"><code data-end=\"127\" data-start=\"105\">edges[i] = [u<sub>i</sub>, v<sub>i</sub>, cost<sub>i</sub>]</code></li>\n\t<li data-end=\"151\" data-start=\"132\"><code data-end=\"149\" data-start=\"132\">0 &lt;= u<sub>i</sub>, v<sub>i</sub> &lt; n</code></li>\n\t<li data-end=\"166\" data-start=\"154\"><code data-end=\"164\" data-start=\"154\">u<sub>i</sub> != v<sub>i</sub></code></li>\n\t<li data-end=\"191\" data-start=\"169\"><code data-end=\"189\" data-start=\"169\">0 &lt;= cost<sub>i</sub> &lt;= 10<sup>9</sup></code></li>\n\t<li data-end=\"213\" data-start=\"194\"><code data-end=\"211\" data-start=\"194\">0 &lt;= k &lt;= 5 * 10<sup>13</sup></code></li>\n\t<li data-end=\"309\" data-start=\"216\"><code data-end=\"227\" data-start=\"216\">online[i]</code> is either <code data-end=\"244\" data-is-only-node=\"\" data-start=\"238\">true</code> or <code data-end=\"255\" data-start=\"248\">false</code>, and both <code data-end=\"277\" data-start=\"266\">online[0]</code> and <code data-end=\"295\" data-start=\"282\">online[n &minus; 1]</code> are <code data-end=\"306\" data-start=\"300\">true</code>.</li>\n\t<li data-end=\"362\" data-is-last-node=\"\" data-start=\"312\">The given graph is a directed acyclic graph.</li>\n</ul>\n",
"translatedTitle": "恢复网络路径",
"translatedContent": "<p>给你一个包含 <code>n</code> 个节点(编号从 0 到 <code>n - 1</code>)的有向无环图。图由长度为 <code>m</code> 的二维数组 <code>edges</code> 表示,其中 <code>edges[i] = [u<sub>i</sub>, v<sub>i</sub>, cost<sub>i</sub>]</code> 表示从节点 <code>u<sub>i</sub></code> 到节点 <code>v<sub>i</sub></code> 的单向通信,恢复成本为 <code>cost<sub>i</sub></code>。</p>\n\n<p>一些节点可能处于离线状态。给定一个布尔数组 <code>online</code>,其中 <code>online[i] = true</code> 表示节点 <code>i</code> 在线。节点 0 和 <code>n - 1</code> 始终在线。</p>\n\n<p>从 0 到 <code>n - 1</code> 的路径如果满足以下条件,那么它是&nbsp;<strong>有效&nbsp;</strong>的:</p>\n\n<ul>\n\t<li>路径上的所有中间节点都在线。</li>\n\t<li>路径上所有边的总恢复成本不超过 <code>k</code>。</li>\n</ul>\n\n<p>对于每条有效路径,其&nbsp;<strong>分数&nbsp;</strong>定义为该路径上的最小边成本。</p>\n\n<p>返回所有有效路径中的&nbsp;<strong>最大&nbsp;</strong>路径分数(即最大&nbsp;<strong>最小&nbsp;</strong>边成本)。如果没有有效路径,则返回 -1。</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\">edges = [[0,1,5],[1,3,10],[0,2,3],[2,3,4]], online = [true,true,true,true], k = 10</span></p>\n\n<p><strong>输出:</strong> <span class=\"example-io\">3</span></p>\n\n<p><strong>解释:</strong></p>\n\n<p><img alt=\"\" src=\"https://assets.leetcode.com/uploads/2025/06/06/graph-10.png\" style=\"width: 239px; height: 267px;\" /></p>\n\n<ul>\n\t<li>\n\t<p>图中有两条从节点 0 到节点 3 的可能路线:</p>\n\n\t<ol>\n\t\t<li>\n\t\t<p>路径 <code>0 → 1 → 3</code></p>\n\n\t\t<ul>\n\t\t\t<li>\n\t\t\t<p>总成本 = <code>5 + 10 = 15</code>,超过了 k (<code>15 &gt; 10</code>),因此此路径无效。</p>\n\t\t\t</li>\n\t\t</ul>\n\t\t</li>\n\t\t<li>\n\t\t<p>路径 <code>0 → 2 → 3</code></p>\n\n\t\t<ul>\n\t\t\t<li>\n\t\t\t<p>总成本 = <code>3 + 4 = 7 &lt;= k</code>,因此此路径有效。</p>\n\t\t\t</li>\n\t\t\t<li>\n\t\t\t<p>此路径上的最小边成本为 <code>min(3, 4) = 3</code>。</p>\n\t\t\t</li>\n\t\t</ul>\n\t\t</li>\n\t</ol>\n\t</li>\n\t<li>\n\t<p>没有其他有效路径。因此,所有有效路径分数中的最大值为 3。</p>\n\t</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\">edges = [[0,1,7],[1,4,5],[0,2,6],[2,3,6],[3,4,2],[2,4,6]], online = [true,true,true,false,true], k = 12</span></p>\n\n<p><strong>输出:</strong> <span class=\"example-io\">6</span></p>\n\n<p><strong>解释:</strong></p>\n\n<p><img alt=\"\" src=\"https://assets.leetcode.com/uploads/2025/06/06/graph-11.png\" style=\"width: 343px; height: 194px;\" /></p>\n\n<ul>\n\t<li>\n\t<p>节点 3 离线,因此任何通过 3 的路径都是无效的。</p>\n\t</li>\n\t<li>\n\t<p>考虑从 0 到 4 的其余路线:</p>\n\n\t<ol>\n\t\t<li>\n\t\t<p>路径 <code>0 → 1 → 4</code></p>\n\n\t\t<ul>\n\t\t\t<li>\n\t\t\t<p>总成本 = <code>7 + 5 = 12 &lt;= k</code>,因此此路径有效。</p>\n\t\t\t</li>\n\t\t\t<li>\n\t\t\t<p>此路径上的最小边成本为 <code>min(7, 5) = 5</code>。</p>\n\t\t\t</li>\n\t\t</ul>\n\t\t</li>\n\t\t<li>\n\t\t<p>路径 <code>0 → 2 → 3 → 4</code></p>\n\n\t\t<ul>\n\t\t\t<li>\n\t\t\t<p>节点 3 离线,因此无论成本多少,此路径无效。</p>\n\t\t\t</li>\n\t\t</ul>\n\t\t</li>\n\t\t<li>\n\t\t<p>路径 <code>0 → 2 → 4</code></p>\n\n\t\t<ul>\n\t\t\t<li>\n\t\t\t<p>总成本 = <code>6 + 6 = 12 &lt;= k</code>,因此此路径有效。</p>\n\t\t\t</li>\n\t\t\t<li>\n\t\t\t<p>此路径上的最小边成本为 <code>min(6, 6) = 6</code>。</p>\n\t\t\t</li>\n\t\t</ul>\n\t\t</li>\n\t</ol>\n\t</li>\n\t<li>\n\t<p>在两条有效路径中,它们的分数分别为 5 和 6。因此答案是 6。</p>\n\t</li>\n</ul>\n</div>\n\n<p>&nbsp;</p>\n\n<p><strong>提示:</strong></p>\n\n<ul>\n\t<li><code>n == online.length</code></li>\n\t<li><code>2 &lt;= n &lt;= 5 * 10<sup>4</sup></code></li>\n\t<li><code>0 &lt;= m == edges.length &lt;= min(10<sup>5</sup>, n * (n - 1) / 2)</code></li>\n\t<li><code>edges[i] = [u<sub>i</sub>, v<sub>i</sub>, cost<sub>i</sub>]</code></li>\n\t<li><code>0 &lt;= u<sub>i</sub>, v<sub>i</sub> &lt; n</code></li>\n\t<li><code>u<sub>i</sub> != v<sub>i</sub></code></li>\n\t<li><code>0 &lt;= cost<sub>i</sub> &lt;= 10<sup>9</sup></code></li>\n\t<li><code>0 &lt;= k &lt;= 5 * 10<sup>13</sup></code></li>\n\t<li><code>online[i]</code> 是 <code>true</code> 或 <code>false</code>,且 <code>online[0]</code> 和 <code>online[n - 1]</code> 均为 <code>true</code>。</li>\n\t<li>给定的图是一个有向无环图。</li>\n</ul>\n",
"isPaidOnly": false,
"difficulty": "Hard",
"likes": 4,
"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": [
{
"name": "Graph",
"slug": "graph",
"translatedName": "图",
"__typename": "TopicTagNode"
},
{
"name": "Topological Sort",
"slug": "topological-sort",
"translatedName": "拓扑排序",
"__typename": "TopicTagNode"
},
{
"name": "Array",
"slug": "array",
"translatedName": "数组",
"__typename": "TopicTagNode"
},
{
"name": "Binary Search",
"slug": "binary-search",
"translatedName": "二分查找",
"__typename": "TopicTagNode"
},
{
"name": "Dynamic Programming",
"slug": "dynamic-programming",
"translatedName": "动态规划",
"__typename": "TopicTagNode"
},
{
"name": "Shortest Path",
"slug": "shortest-path",
"translatedName": "最短路",
"__typename": "TopicTagNode"
},
{
"name": "Heap (Priority Queue)",
"slug": "heap-priority-queue",
"translatedName": "堆(优先队列)",
"__typename": "TopicTagNode"
}
],
"companyTagStats": null,
"codeSnippets": [
{
"lang": "C++",
"langSlug": "cpp",
"code": "class Solution {\npublic:\n int findMaxPathScore(vector<vector<int>>& edges, vector<bool>& online, long long k) {\n \n }\n};",
"__typename": "CodeSnippetNode"
},
{
"lang": "Java",
"langSlug": "java",
"code": "class Solution {\n public int findMaxPathScore(int[][] edges, boolean[] online, long k) {\n \n }\n}",
"__typename": "CodeSnippetNode"
},
{
"lang": "Python",
"langSlug": "python",
"code": "class Solution(object):\n def findMaxPathScore(self, edges, online, k):\n \"\"\"\n :type edges: List[List[int]]\n :type online: List[bool]\n :type k: int\n :rtype: int\n \"\"\"\n ",
"__typename": "CodeSnippetNode"
},
{
"lang": "Python3",
"langSlug": "python3",
"code": "class Solution:\n def findMaxPathScore(self, edges: List[List[int]], online: List[bool], k: int) -> int:\n ",
"__typename": "CodeSnippetNode"
},
{
"lang": "C",
"langSlug": "c",
"code": "int findMaxPathScore(int** edges, int edgesSize, int* edgesColSize, bool* online, int onlineSize, long long k) {\n \n}",
"__typename": "CodeSnippetNode"
},
{
"lang": "C#",
"langSlug": "csharp",
"code": "public class Solution {\n public int FindMaxPathScore(int[][] edges, bool[] online, long k) {\n \n }\n}",
"__typename": "CodeSnippetNode"
},
{
"lang": "JavaScript",
"langSlug": "javascript",
"code": "/**\n * @param {number[][]} edges\n * @param {boolean[]} online\n * @param {number} k\n * @return {number}\n */\nvar findMaxPathScore = function(edges, online, k) {\n \n};",
"__typename": "CodeSnippetNode"
},
{
"lang": "TypeScript",
"langSlug": "typescript",
"code": "function findMaxPathScore(edges: number[][], online: boolean[], k: number): number {\n \n};",
"__typename": "CodeSnippetNode"
},
{
"lang": "PHP",
"langSlug": "php",
"code": "class Solution {\n\n /**\n * @param Integer[][] $edges\n * @param Boolean[] $online\n * @param Integer $k\n * @return Integer\n */\n function findMaxPathScore($edges, $online, $k) {\n \n }\n}",
"__typename": "CodeSnippetNode"
},
{
"lang": "Swift",
"langSlug": "swift",
"code": "class Solution {\n func findMaxPathScore(_ edges: [[Int]], _ online: [Bool], _ k: Int) -> Int {\n \n }\n}",
"__typename": "CodeSnippetNode"
},
{
"lang": "Kotlin",
"langSlug": "kotlin",
"code": "class Solution {\n fun findMaxPathScore(edges: Array<IntArray>, online: BooleanArray, k: Long): Int {\n \n }\n}",
"__typename": "CodeSnippetNode"
},
{
"lang": "Dart",
"langSlug": "dart",
"code": "class Solution {\n int findMaxPathScore(List<List<int>> edges, List<bool> online, int k) {\n \n }\n}",
"__typename": "CodeSnippetNode"
},
{
"lang": "Go",
"langSlug": "golang",
"code": "func findMaxPathScore(edges [][]int, online []bool, k int64) int {\n \n}",
"__typename": "CodeSnippetNode"
},
{
"lang": "Ruby",
"langSlug": "ruby",
"code": "# @param {Integer[][]} edges\n# @param {Boolean[]} online\n# @param {Integer} k\n# @return {Integer}\ndef find_max_path_score(edges, online, k)\n \nend",
"__typename": "CodeSnippetNode"
},
{
"lang": "Scala",
"langSlug": "scala",
"code": "object Solution {\n def findMaxPathScore(edges: Array[Array[Int]], online: Array[Boolean], k: Long): Int = {\n \n }\n}",
"__typename": "CodeSnippetNode"
},
{
"lang": "Rust",
"langSlug": "rust",
"code": "impl Solution {\n pub fn find_max_path_score(edges: Vec<Vec<i32>>, online: Vec<bool>, k: i64) -> i32 {\n \n }\n}",
"__typename": "CodeSnippetNode"
},
{
"lang": "Racket",
"langSlug": "racket",
"code": "(define/contract (find-max-path-score edges online k)\n (-> (listof (listof exact-integer?)) (listof boolean?) exact-integer? exact-integer?)\n )",
"__typename": "CodeSnippetNode"
},
{
"lang": "Erlang",
"langSlug": "erlang",
"code": "-spec find_max_path_score(Edges :: [[integer()]], Online :: [boolean()], K :: integer()) -> integer().\nfind_max_path_score(Edges, Online, K) ->\n .",
"__typename": "CodeSnippetNode"
},
{
"lang": "Elixir",
"langSlug": "elixir",
"code": "defmodule Solution do\n @spec find_max_path_score(edges :: [[integer]], online :: [boolean], k :: integer) :: integer\n def find_max_path_score(edges, online, k) do\n \n end\nend",
"__typename": "CodeSnippetNode"
},
{
"lang": "Cangjie",
"langSlug": "cangjie",
"code": "class Solution {\n func findMaxPathScore(edges: Array<Array<Int64>>, online: Array<Bool>, k: Int64): Int64 {\n\n }\n}",
"__typename": "CodeSnippetNode"
}
],
"stats": "{\"totalAccepted\": \"1.2K\", \"totalSubmission\": \"3.6K\", \"totalAcceptedRaw\": 1168, \"totalSubmissionRaw\": 3577, \"acRate\": \"32.7%\"}",
"hints": [
"Use binary search on <code>ans</code>.",
"Check if a particular <code>ans</code> is possible by including only the edges with weights ≥ <code>mid</code> (the current binarysearch pivot).",
"Implement the check function using either <code>Dijkstra</code> or DP (via topological sorting, since the graph is a DAG)."
],
"solution": null,
"status": null,
"sampleTestCase": "[[0,1,5],[1,3,10],[0,2,3],[2,3,4]]\n[true,true,true,true]\n10",
"metaData": "{\n \"name\": \"findMaxPathScore\",\n \"params\": [\n {\n \"name\": \"edges\",\n \"type\": \"integer[][]\"\n },\n {\n \"type\": \"boolean[]\",\n \"name\": \"online\"\n },\n {\n \"type\": \"long\",\n \"name\": \"k\"\n }\n ],\n \"return\": {\n \"type\": \"integer\"\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,1,5],[1,3,10],[0,2,3],[2,3,4]]\n[true,true,true,true]\n10\n[[0,1,7],[1,4,5],[0,2,6],[2,3,6],[3,4,2],[2,4,6]]\n[true,true,true,false,true]\n12",
"__typename": "QuestionNode"
}
}
}