mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-04-08 20:03:41 +08:00
update
This commit is contained in:
parent
210ba37692
commit
ea34fbb843
README.md
leetcode-cn
origin-data.json
originData
[no content]find-minimum-time-to-finish-all-jobs-ii.json[no content]product-sales-analysis-iv.json[no content]product-sales-analysis-v.json[no content]valid-palindrome-iv.jsonarray-partition.jsoncount-the-number-of-ideal-arrays.jsondecode-the-message.jsonevaluate-boolean-binary-tree.jsonminimum-amount-of-time-to-fill-cups.jsonminimum-sum-of-squared-difference.jsonmove-pieces-to-obtain-a-string.jsonnumber-of-increasing-paths-in-a-grid.jsonnumber-of-people-aware-of-a-secret.jsonsmallest-number-in-infinite-set.jsonspiral-matrix-iv.jsonsubarray-with-elements-greater-than-varying-threshold.jsonthe-latest-time-to-catch-a-bus.json
problem (Chinese)
元素值大于变化阈值的子数组 [subarray-with-elements-greater-than-varying-threshold].html坐上公交的最晚时间 [the-latest-time-to-catch-a-bus].html数组拆分 [array-partition].html无限集中的最小数字 [smallest-number-in-infinite-set].html最小差值平方和 [minimum-sum-of-squared-difference].html知道秘密的人数 [number-of-people-aware-of-a-secret].html移动片段得到字符串 [move-pieces-to-obtain-a-string].html统计理想数组的数目 [count-the-number-of-ideal-arrays].html网格图中递增路径的数目 [number-of-increasing-paths-in-a-grid].html螺旋矩阵 IV [spiral-matrix-iv].html装满杯子需要的最短总时长 [minimum-amount-of-time-to-fill-cups].html解密消息 [decode-the-message].html计算布尔二叉树的值 [evaluate-boolean-binary-tree].html
problem (English)
元素值大于变化阈值的子数组(English) [subarray-with-elements-greater-than-varying-threshold].html坐上公交的最晚时间(English) [the-latest-time-to-catch-a-bus].html数组拆分(English) [array-partition].html无限集中的最小数字(English) [smallest-number-in-infinite-set].html最小差值平方和(English) [minimum-sum-of-squared-difference].html知道秘密的人数(English) [number-of-people-aware-of-a-secret].html移动片段得到字符串(English) [move-pieces-to-obtain-a-string].html统计理想数组的数目(English) [count-the-number-of-ideal-arrays].html网格图中递增路径的数目(English) [number-of-increasing-paths-in-a-grid].html螺旋矩阵 IV(English) [spiral-matrix-iv].html装满杯子需要的最短总时长(English) [minimum-amount-of-time-to-fill-cups].html解密消息(English) [decode-the-message].html计算布尔二叉树的值(English) [evaluate-boolean-binary-tree].html
leetcode
origin-data.json
originData
[no content]find-minimum-time-to-finish-all-jobs-ii.json[no content]product-sales-analysis-iv.json[no content]product-sales-analysis-v.json[no content]valid-palindrome-iv.jsonarray-partition.jsoncount-the-number-of-ideal-arrays.jsondecode-the-message.jsonevaluate-boolean-binary-tree.jsonminimum-amount-of-time-to-fill-cups.jsonminimum-sum-of-squared-difference.jsonmove-pieces-to-obtain-a-string.jsonnumber-of-increasing-paths-in-a-grid.jsonnumber-of-people-aware-of-a-secret.jsonsmallest-number-in-infinite-set.jsonspiral-matrix-iv.jsonsubarray-with-elements-greater-than-varying-threshold.jsonthe-latest-time-to-catch-a-bus.json
problem
array-partition.htmlcount-the-number-of-ideal-arrays.htmldecode-the-message.htmlevaluate-boolean-binary-tree.htmlminimum-amount-of-time-to-fill-cups.htmlminimum-sum-of-squared-difference.htmlmove-pieces-to-obtain-a-string.htmlnumber-of-increasing-paths-in-a-grid.htmlnumber-of-people-aware-of-a-secret.htmlsmallest-number-in-infinite-set.htmlspiral-matrix-iv.htmlsubarray-with-elements-greater-than-varying-threshold.htmlthe-latest-time-to-catch-a-bus.html
@ -1,6 +1,6 @@
|
||||
# 力扣题库(完整版)
|
||||
|
||||
> 最后更新日期: **2022.06.29**
|
||||
> 最后更新日期: **2022.06.12**
|
||||
>
|
||||
> 使用脚本前请务必仔细完整阅读本 `README.md` 文件
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@ -0,0 +1,67 @@
|
||||
{
|
||||
"data": {
|
||||
"question": {
|
||||
"questionId": "2451",
|
||||
"questionFrontendId": "2324",
|
||||
"categoryTitle": "Database",
|
||||
"boundTopicId": 1645125,
|
||||
"title": "Product Sales Analysis IV",
|
||||
"titleSlug": "product-sales-analysis-iv",
|
||||
"content": null,
|
||||
"translatedTitle": null,
|
||||
"translatedContent": null,
|
||||
"isPaidOnly": true,
|
||||
"difficulty": "Medium",
|
||||
"likes": 0,
|
||||
"dislikes": 0,
|
||||
"isLiked": null,
|
||||
"similarQuestions": "[]",
|
||||
"contributors": [],
|
||||
"langToValidPlayground": null,
|
||||
"topicTags": [
|
||||
{
|
||||
"name": "Database",
|
||||
"slug": "database",
|
||||
"translatedName": "数据库",
|
||||
"__typename": "TopicTagNode"
|
||||
}
|
||||
],
|
||||
"companyTagStats": null,
|
||||
"codeSnippets": null,
|
||||
"stats": "{\"totalAccepted\": \"65\", \"totalSubmission\": \"78\", \"totalAcceptedRaw\": 65, \"totalSubmissionRaw\": 78, \"acRate\": \"83.3%\"}",
|
||||
"hints": [],
|
||||
"solution": null,
|
||||
"status": null,
|
||||
"sampleTestCase": "{\"headers\": {\"Sales\": [\"sale_id\", \"product_id\", \"user_id\", \"quantity\"], \"Product\": [\"product_id\", \"price\"]}, \"rows\": {\"Sales\": [[1, 1, 101, 10], [2, 3, 101, 7], [3, 1, 102, 9], [4, 2, 102, 6], [5, 3, 102, 10], [6, 1, 102, 6]], \"Product\": [[1, 10], [2, 25], [3, 15]]}}",
|
||||
"metaData": "{\n \"mysql\": [\n \"Create table If Not Exists Sales (sale_id int, product_id int, user_id int, quantity int)\",\n \"Create table If Not Exists Product (product_id int, price int)\"\n ],\n \"mssql\": [\n \"Create table Sales (sale_id int, product_id int, user_id int, quantity int)\",\n \"Create table Product (product_id int, price int)\"\n ],\n \"oraclesql\": [\n \"Create table Sales (sale_id int, product_id int, user_id int, quantity int)\",\n \"Create table Product (product_id int, price int)\"\n ],\n \"database\": true\n}",
|
||||
"judgerAvailable": true,
|
||||
"judgeType": "large",
|
||||
"mysqlSchemas": [
|
||||
"Create table If Not Exists Sales (sale_id int, product_id int, user_id int, quantity int)",
|
||||
"Create table If Not Exists Product (product_id int, price int)",
|
||||
"Truncate table Sales",
|
||||
"insert into Sales (sale_id, product_id, user_id, quantity) values ('1', '1', '101', '10')",
|
||||
"insert into Sales (sale_id, product_id, user_id, quantity) values ('2', '3', '101', '7')",
|
||||
"insert into Sales (sale_id, product_id, user_id, quantity) values ('3', '1', '102', '9')",
|
||||
"insert into Sales (sale_id, product_id, user_id, quantity) values ('4', '2', '102', '6')",
|
||||
"insert into Sales (sale_id, product_id, user_id, quantity) values ('5', '3', '102', '10')",
|
||||
"insert into Sales (sale_id, product_id, user_id, quantity) values ('6', '1', '102', '6')",
|
||||
"Truncate table Product",
|
||||
"insert into Product (product_id, price) values ('1', '10')",
|
||||
"insert into Product (product_id, price) values ('2', '25')",
|
||||
"insert into Product (product_id, price) values ('3', '15')"
|
||||
],
|
||||
"enableRunCode": true,
|
||||
"envInfo": "{\"mysql\":[\"MySQL\",\"<p>\\u7248\\u672c\\uff1a<code>MySQL 8.0<\\/code><\\/p>\"],\"mssql\":[\"MS SQL Server\",\"<p>mssql server 2019.<\\/p>\"],\"oraclesql\":[\"Oracle\",\"<p>Oracle Sql 11.2.<\\/p>\"]}",
|
||||
"book": null,
|
||||
"isSubscribed": false,
|
||||
"isDailyQuestion": false,
|
||||
"dailyRecordStatus": null,
|
||||
"editorType": "CKEDITOR",
|
||||
"ugcQuestionId": null,
|
||||
"style": "LEETCODE",
|
||||
"exampleTestcases": "{\"headers\": {\"Sales\": [\"sale_id\", \"product_id\", \"user_id\", \"quantity\"], \"Product\": [\"product_id\", \"price\"]}, \"rows\": {\"Sales\": [[1, 1, 101, 10], [2, 3, 101, 7], [3, 1, 102, 9], [4, 2, 102, 6], [5, 3, 102, 10], [6, 1, 102, 6]], \"Product\": [[1, 10], [2, 25], [3, 15]]}}",
|
||||
"__typename": "QuestionNode"
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,59 @@
|
||||
{
|
||||
"data": {
|
||||
"question": {
|
||||
"questionId": "2452",
|
||||
"questionFrontendId": "2329",
|
||||
"categoryTitle": "Database",
|
||||
"boundTopicId": 1643199,
|
||||
"title": "Product Sales Analysis V",
|
||||
"titleSlug": "product-sales-analysis-v",
|
||||
"content": null,
|
||||
"translatedTitle": null,
|
||||
"translatedContent": null,
|
||||
"isPaidOnly": true,
|
||||
"difficulty": "Medium",
|
||||
"likes": 0,
|
||||
"dislikes": 0,
|
||||
"isLiked": null,
|
||||
"similarQuestions": "[]",
|
||||
"contributors": [],
|
||||
"langToValidPlayground": null,
|
||||
"topicTags": [],
|
||||
"companyTagStats": null,
|
||||
"codeSnippets": null,
|
||||
"stats": "{\"totalAccepted\": \"64\", \"totalSubmission\": \"79\", \"totalAcceptedRaw\": 64, \"totalSubmissionRaw\": 79, \"acRate\": \"81.0%\"}",
|
||||
"hints": [],
|
||||
"solution": null,
|
||||
"status": null,
|
||||
"sampleTestCase": "{\"headers\": {\"Sales\": [\"sale_id\", \"product_id\", \"user_id\", \"quantity\"], \"Product\": [\"product_id\", \"price\"]}, \"rows\": {\"Sales\": [[1, 1, 101, 10], [2, 2, 101, 1], [3, 3, 102, 3], [4, 3, 102, 2], [5, 2, 103, 3]], \"Product\": [[1, 10], [2, 25], [3, 15]]}}",
|
||||
"metaData": "{\n \"mysql\": [\n \"Create table If Not Exists Sales (sale_id int, product_id int, user_id int, quantity int)\",\n \"Create table If Not Exists Product (product_id int, price int)\"\n ],\n \"mssql\": [\n \"Create table Sales (sale_id int, product_id int, user_id int, quantity int)\",\n \"Create table Product (product_id int, price int)\"\n ],\n \"oraclesql\": [\n \"Create table Sales (sale_id int, product_id int, user_id int, quantity int)\",\n \"Create table Product (product_id int, price int)\"\n ],\n \"database\": true\n}",
|
||||
"judgerAvailable": true,
|
||||
"judgeType": "large",
|
||||
"mysqlSchemas": [
|
||||
"Create table If Not Exists Sales (sale_id int, product_id int, user_id int, quantity int)",
|
||||
"Create table If Not Exists Product (product_id int, price int)",
|
||||
"Truncate table Sales",
|
||||
"insert into Sales (sale_id, product_id, user_id, quantity) values ('1', '1', '101', '10')",
|
||||
"insert into Sales (sale_id, product_id, user_id, quantity) values ('2', '2', '101', '1')",
|
||||
"insert into Sales (sale_id, product_id, user_id, quantity) values ('3', '3', '102', '3')",
|
||||
"insert into Sales (sale_id, product_id, user_id, quantity) values ('4', '3', '102', '2')",
|
||||
"insert into Sales (sale_id, product_id, user_id, quantity) values ('5', '2', '103', '3')",
|
||||
"Truncate table Product",
|
||||
"insert into Product (product_id, price) values ('1', '10')",
|
||||
"insert into Product (product_id, price) values ('2', '25')",
|
||||
"insert into Product (product_id, price) values ('3', '15')"
|
||||
],
|
||||
"enableRunCode": true,
|
||||
"envInfo": "{\"mysql\":[\"MySQL\",\"<p>\\u7248\\u672c\\uff1a<code>MySQL 8.0<\\/code><\\/p>\"],\"mssql\":[\"MS SQL Server\",\"<p>mssql server 2019.<\\/p>\"],\"oraclesql\":[\"Oracle\",\"<p>Oracle Sql 11.2.<\\/p>\"]}",
|
||||
"book": null,
|
||||
"isSubscribed": false,
|
||||
"isDailyQuestion": false,
|
||||
"dailyRecordStatus": null,
|
||||
"editorType": "CKEDITOR",
|
||||
"ugcQuestionId": null,
|
||||
"style": "LEETCODE",
|
||||
"exampleTestcases": "{\"headers\": {\"Sales\": [\"sale_id\", \"product_id\", \"user_id\", \"quantity\"], \"Product\": [\"product_id\", \"price\"]}, \"rows\": {\"Sales\": [[1, 1, 101, 10], [2, 2, 101, 1], [3, 3, 102, 3], [4, 3, 102, 2], [5, 2, 103, 3]], \"Product\": [[1, 10], [2, 25], [3, 15]]}}",
|
||||
"__typename": "QuestionNode"
|
||||
}
|
||||
}
|
||||
}
|
49
leetcode-cn/originData/[no content]valid-palindrome-iv.json
Normal file
49
leetcode-cn/originData/[no content]valid-palindrome-iv.json
Normal file
File diff suppressed because one or more lines are too long
191
leetcode-cn/originData/array-partition.json
Normal file
191
leetcode-cn/originData/array-partition.json
Normal file
File diff suppressed because one or more lines are too long
165
leetcode-cn/originData/count-the-number-of-ideal-arrays.json
Normal file
165
leetcode-cn/originData/count-the-number-of-ideal-arrays.json
Normal file
File diff suppressed because one or more lines are too long
178
leetcode-cn/originData/decode-the-message.json
Normal file
178
leetcode-cn/originData/decode-the-message.json
Normal file
File diff suppressed because one or more lines are too long
164
leetcode-cn/originData/evaluate-boolean-binary-tree.json
Normal file
164
leetcode-cn/originData/evaluate-boolean-binary-tree.json
Normal file
File diff suppressed because one or more lines are too long
164
leetcode-cn/originData/minimum-amount-of-time-to-fill-cups.json
Normal file
164
leetcode-cn/originData/minimum-amount-of-time-to-fill-cups.json
Normal file
File diff suppressed because one or more lines are too long
165
leetcode-cn/originData/minimum-sum-of-squared-difference.json
Normal file
165
leetcode-cn/originData/minimum-sum-of-squared-difference.json
Normal file
File diff suppressed because one or more lines are too long
164
leetcode-cn/originData/move-pieces-to-obtain-a-string.json
Normal file
164
leetcode-cn/originData/move-pieces-to-obtain-a-string.json
Normal file
File diff suppressed because one or more lines are too long
213
leetcode-cn/originData/number-of-increasing-paths-in-a-grid.json
Normal file
213
leetcode-cn/originData/number-of-increasing-paths-in-a-grid.json
Normal file
File diff suppressed because one or more lines are too long
184
leetcode-cn/originData/number-of-people-aware-of-a-secret.json
Normal file
184
leetcode-cn/originData/number-of-people-aware-of-a-secret.json
Normal file
File diff suppressed because one or more lines are too long
164
leetcode-cn/originData/smallest-number-in-infinite-set.json
Normal file
164
leetcode-cn/originData/smallest-number-in-infinite-set.json
Normal file
File diff suppressed because one or more lines are too long
190
leetcode-cn/originData/spiral-matrix-iv.json
Normal file
190
leetcode-cn/originData/spiral-matrix-iv.json
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
164
leetcode-cn/originData/the-latest-time-to-catch-a-bus.json
Normal file
164
leetcode-cn/originData/the-latest-time-to-catch-a-bus.json
Normal file
File diff suppressed because one or more lines are too long
35
leetcode-cn/problem (Chinese)/元素值大于变化阈值的子数组 [subarray-with-elements-greater-than-varying-threshold].html
Normal file
35
leetcode-cn/problem (Chinese)/元素值大于变化阈值的子数组 [subarray-with-elements-greater-than-varying-threshold].html
Normal file
@ -0,0 +1,35 @@
|
||||
<p>给你一个整数数组 <code>nums</code> 和一个整数 <code>threshold</code> 。</p>
|
||||
|
||||
<p>找到长度为 <code>k</code> 的 <code>nums</code> 子数组,满足数组中 <strong>每个</strong> 元素都 <strong>大于</strong> <code>threshold / k</code> 。</p>
|
||||
|
||||
<p>请你返回满足要求的 <strong>任意</strong> 子数组的 <strong>大小</strong> 。如果没有这样的子数组,返回 <code>-1</code> 。</p>
|
||||
|
||||
<p><strong>子数组</strong> 是数组中一段连续非空的元素序列。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre><b>输入:</b>nums = [1,3,4,3,1], threshold = 6
|
||||
<b>输出:</b>3
|
||||
<b>解释:</b>子数组 [3,4,3] 大小为 3 ,每个元素都大于 6 / 3 = 2 。
|
||||
注意这是唯一合法的子数组。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre><b>输入:</b>nums = [6,5,6,5,8], threshold = 7
|
||||
<b>输出:</b>1
|
||||
<b>解释:</b>子数组 [8] 大小为 1 ,且 8 > 7 / 1 = 7 。所以返回 1 。
|
||||
注意子数组 [6,5] 大小为 2 ,每个元素都大于 7 / 2 = 3.5 。
|
||||
类似的,子数组 [6,5,6] ,[6,5,6,5] ,[6,5,6,5,8] 都是符合条件的子数组。
|
||||
所以返回 2, 3, 4 和 5 都可以。</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= nums.length <= 10<sup>5</sup></code></li>
|
||||
<li><code>1 <= nums[i], threshold <= 10<sup>9</sup></code></li>
|
||||
</ul>
|
@ -0,0 +1,43 @@
|
||||
<p>给你一个下标从 <strong>0</strong> 开始长度为 <code>n</code> 的整数数组 <code>buses</code> ,其中 <code>buses[i]</code> 表示第 <code>i</code> 辆公交车的出发时间。同时给你一个下标从 <strong>0</strong> 开始长度为 <code>m</code> 的整数数组 <code>passengers</code> ,其中 <code>passengers[j]</code> 表示第 <code>j</code> 位乘客的到达时间。所有公交车出发的时间互不相同,所有乘客到达的时间也互不相同。</p>
|
||||
|
||||
<p>给你一个整数 <code>capacity</code> ,表示每辆公交车 <strong>最多</strong> 能容纳的乘客数目。</p>
|
||||
|
||||
<p>每位乘客都会搭乘下一辆有座位的公交车。如果你在 <code>y</code> 时刻到达,公交在 <code>x</code> 时刻出发,满足 <code>y <= x</code> 且公交没有满,那么你可以搭乘这一辆公交。<strong>最早</strong> 到达的乘客优先上车。</p>
|
||||
|
||||
<p>返回你可以搭乘公交车的最晚到达公交站时间。你 <strong>不能</strong> 跟别的乘客同时刻到达。</p>
|
||||
|
||||
<p><strong>注意:</strong>数组 <code>buses</code> 和 <code>passengers</code> 不一定是有序的。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre><b>输入:</b>buses = [10,20], passengers = [2,17,18,19], capacity = 2
|
||||
<b>输出:</b>16
|
||||
<strong>解释:</strong>
|
||||
第 1 辆公交车载着第 1 位乘客。
|
||||
第 2 辆公交车载着你和第 2 位乘客。
|
||||
注意你不能跟其他乘客同一时间到达,所以你必须在第二位乘客之前到达。</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre><b>输入:</b>buses = [20,30,10], passengers = [19,13,26,4,25,11,21], capacity = 2
|
||||
<b>输出:</b>20
|
||||
<b>解释:</b>
|
||||
第 1 辆公交车载着第 4 位乘客。
|
||||
第 2 辆公交车载着第 6 位和第 2 位乘客。
|
||||
第 3 辆公交车载着第 1 位乘客和你。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>n == buses.length</code></li>
|
||||
<li><code>m == passengers.length</code></li>
|
||||
<li><code>1 <= n, m, capacity <= 10<sup>5</sup></code></li>
|
||||
<li><code>2 <= buses[i], passengers[i] <= 10<sup>9</sup></code></li>
|
||||
<li><code>buses</code> 中的元素 <strong>互不相同 </strong>。</li>
|
||||
<li><code>passengers</code> 中的元素 <strong>互不相同</strong> 。</li>
|
||||
</ul>
|
34
leetcode-cn/problem (Chinese)/数组拆分 [array-partition].html
Normal file
34
leetcode-cn/problem (Chinese)/数组拆分 [array-partition].html
Normal file
@ -0,0 +1,34 @@
|
||||
<p>给定长度为 <code>2n</code><strong> </strong>的整数数组 <code>nums</code> ,你的任务是将这些数分成 <code>n</code><strong> </strong>对, 例如 <code>(a<sub>1</sub>, b<sub>1</sub>), (a<sub>2</sub>, b<sub>2</sub>), ..., (a<sub>n</sub>, b<sub>n</sub>)</code> ,使得从 <code>1</code> 到 <code>n</code> 的 <code>min(a<sub>i</sub>, b<sub>i</sub>)</code> 总和最大。</p>
|
||||
|
||||
<p>返回该 <strong>最大总和</strong> 。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>nums = [1,4,3,2]
|
||||
<strong>输出:</strong>4
|
||||
<strong>解释:</strong>所有可能的分法(忽略元素顺序)为:
|
||||
1. (1, 4), (2, 3) -> min(1, 4) + min(2, 3) = 1 + 2 = 3
|
||||
2. (1, 3), (2, 4) -> min(1, 3) + min(2, 4) = 1 + 2 = 3
|
||||
3. (1, 2), (3, 4) -> min(1, 2) + min(3, 4) = 1 + 3 = 4
|
||||
所以最大总和为 4</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>nums = [6,2,6,5,1,2]
|
||||
<strong>输出:</strong>9
|
||||
<strong>解释:</strong>最优的分法为 (2, 1), (2, 5), (6, 6). min(2, 1) + min(2, 5) + min(6, 6) = 1 + 2 + 6 = 9
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= n <= 10<sup>4</sup></code></li>
|
||||
<li><code>nums.length == 2 * n</code></li>
|
||||
<li><code>-10<sup>4</sup> <= nums[i] <= 10<sup>4</sup></code></li>
|
||||
</ul>
|
@ -0,0 +1,40 @@
|
||||
<p>现有一个包含所有正整数的集合 <code>[1, 2, 3, 4, 5, ...]</code> 。</p>
|
||||
|
||||
<p>实现 <code>SmallestInfiniteSet</code> 类:</p>
|
||||
|
||||
<ul>
|
||||
<li><code>SmallestInfiniteSet()</code> 初始化 <strong>SmallestInfiniteSet</strong> 对象以包含 <strong>所有</strong> 正整数。</li>
|
||||
<li><code>int popSmallest()</code> <strong>移除</strong> 并返回该无限集中的最小整数。</li>
|
||||
<li><code>void addBack(int num)</code> 如果正整数 <code>num</code> <strong>不</strong> 存在于无限集中,则将一个 <code>num</code> <strong>添加</strong> 到该无限集中。</li>
|
||||
</ul>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例:</strong></p>
|
||||
|
||||
<pre><strong>输入</strong>
|
||||
["SmallestInfiniteSet", "addBack", "popSmallest", "popSmallest", "popSmallest", "addBack", "popSmallest", "popSmallest", "popSmallest"]
|
||||
[[], [2], [], [], [], [1], [], [], []]
|
||||
<strong>输出</strong>
|
||||
[null, null, 1, 2, 3, null, 1, 4, 5]
|
||||
|
||||
<strong>解释</strong>
|
||||
SmallestInfiniteSet smallestInfiniteSet = new SmallestInfiniteSet();
|
||||
smallestInfiniteSet.addBack(2); // 2 已经在集合中,所以不做任何变更。
|
||||
smallestInfiniteSet.popSmallest(); // 返回 1 ,因为 1 是最小的整数,并将其从集合中移除。
|
||||
smallestInfiniteSet.popSmallest(); // 返回 2 ,并将其从集合中移除。
|
||||
smallestInfiniteSet.popSmallest(); // 返回 3 ,并将其从集合中移除。
|
||||
smallestInfiniteSet.addBack(1); // 将 1 添加到该集合中。
|
||||
smallestInfiniteSet.popSmallest(); // 返回 1 ,因为 1 在上一步中被添加到集合中,
|
||||
// 且 1 是最小的整数,并将其从集合中移除。
|
||||
smallestInfiniteSet.popSmallest(); // 返回 4 ,并将其从集合中移除。
|
||||
smallestInfiniteSet.popSmallest(); // 返回 5 ,并将其从集合中移除。</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= num <= 1000</code></li>
|
||||
<li>最多调用 <code>popSmallest</code> 和 <code>addBack</code> 方法 <strong>共计</strong> <code>1000</code> 次</li>
|
||||
</ul>
|
@ -0,0 +1,41 @@
|
||||
<p>给你两个下标从 <strong>0</strong> 开始的整数数组 <code>nums1</code> 和 <code>nums2</code> ,长度为 <code>n</code> 。</p>
|
||||
|
||||
<p>数组 <code>nums1</code> 和 <code>nums2</code> 的 <strong>差值平方和</strong> 定义为所有满足 <code>0 <= i < n</code> 的 <code>(nums1[i] - nums2[i])<sup>2</sup></code> 之和。</p>
|
||||
|
||||
<p>同时给你两个正整数 <code>k1</code> 和 <code>k2</code> 。你可以将 <code>nums1</code> 中的任意元素 <code>+1</code> 或者 <code>-1</code> 至多 <code>k1</code> 次。类似的,你可以将 <code>nums2</code> 中的任意元素 <code>+1</code> 或者 <code>-1</code> 至多 <code>k2</code> 次。</p>
|
||||
|
||||
<p>请你返回修改数组<em> </em><code>nums1</code><em> </em>至多<em> </em><code>k1</code> 次且修改数组<em> </em><code>nums2</code> 至多 <code>k2</code><em> </em>次后的最小 <strong>差值平方和</strong> 。</p>
|
||||
|
||||
<p><strong>注意:</strong>你可以将数组中的元素变成 <strong>负</strong> 整数。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre><b>输入:</b>nums1 = [1,2,3,4], nums2 = [2,10,20,19], k1 = 0, k2 = 0
|
||||
<b>输出:</b>579
|
||||
<b>解释:</b>nums1 和 nums2 中的元素不能修改,因为 k1 = 0 和 k2 = 0 。
|
||||
差值平方和为:(1 - 2)<sup>2 </sup>+ (2 - 10)<sup>2 </sup>+ (3 - 20)<sup>2 </sup>+ (4 - 19)<sup>2</sup> = 579 。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre><b>输入:</b>nums1 = [1,4,10,12], nums2 = [5,8,6,9], k1 = 1, k2 = 1
|
||||
<b>输出:</b>43
|
||||
<b>解释:</b>一种得到最小差值平方和的方式为:
|
||||
- 将 nums1[0] 增加一次。
|
||||
- 将 nums2[2] 增加一次。
|
||||
最小差值平方和为:
|
||||
(2 - 5)<sup>2 </sup>+ (4 - 8)<sup>2 </sup>+ (10 - 7)<sup>2 </sup>+ (12 - 9)<sup>2</sup> = 43 。
|
||||
注意,也有其他方式可以得到最小差值平方和,但没有得到比 43 更小答案的方案。</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>n == nums1.length == nums2.length</code></li>
|
||||
<li><code>1 <= n <= 10<sup>5</sup></code></li>
|
||||
<li><code>0 <= nums1[i], nums2[i] <= 10<sup>5</sup></code></li>
|
||||
<li><code>0 <= k1, k2 <= 10<sup>9</sup></code></li>
|
||||
</ul>
|
@ -0,0 +1,40 @@
|
||||
<p>在第 <code>1</code> 天,有一个人发现了一个秘密。</p>
|
||||
|
||||
<p>给你一个整数 <code>delay</code> ,表示每个人会在发现秘密后的 <code>delay</code> 天之后,<strong>每天</strong> 给一个新的人 <strong>分享</strong> 秘密。同时给你一个整数 <code>forget</code> ,表示每个人在发现秘密 <code>forget</code> 天之后会 <strong>忘记</strong> 这个秘密。一个人 <strong>不能</strong> 在忘记秘密那一天及之后的日子里分享秘密。</p>
|
||||
|
||||
<p>给你一个整数 <code>n</code> ,请你返回在第 <code>n</code> 天结束时,知道秘密的人数。由于答案可能会很大,请你将结果对 <code>10<sup>9</sup> + 7</code> <strong>取余</strong> 后返回。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre><b>输入:</b>n = 6, delay = 2, forget = 4
|
||||
<b>输出:</b>5
|
||||
<strong>解释:</strong>
|
||||
第 1 天:假设第一个人叫 A 。(一个人知道秘密)
|
||||
第 2 天:A 是唯一一个知道秘密的人。(一个人知道秘密)
|
||||
第 3 天:A 把秘密分享给 B 。(两个人知道秘密)
|
||||
第 4 天:A 把秘密分享给一个新的人 C 。(三个人知道秘密)
|
||||
第 5 天:A 忘记了秘密,B 把秘密分享给一个新的人 D 。(三个人知道秘密)
|
||||
第 6 天:B 把秘密分享给 E,C 把秘密分享给 F 。(五个人知道秘密)
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre><b>输入:</b>n = 4, delay = 1, forget = 3
|
||||
<b>输出:</b>6
|
||||
<strong>解释:</strong>
|
||||
第 1 天:第一个知道秘密的人为 A 。(一个人知道秘密)
|
||||
第 2 天:A 把秘密分享给 B 。(两个人知道秘密)
|
||||
第 3 天:A 和 B 把秘密分享给 2 个新的人 C 和 D 。(四个人知道秘密)
|
||||
第 4 天:A 忘记了秘密,B、C、D 分别分享给 3 个新的人。(六个人知道秘密)
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>2 <= n <= 1000</code></li>
|
||||
<li><code>1 <= delay < forget <= n</code></li>
|
||||
</ul>
|
@ -0,0 +1,45 @@
|
||||
<p>给你两个字符串 <code>start</code> 和 <code>target</code> ,长度均为 <code>n</code> 。每个字符串 <strong>仅</strong> 由字符 <code>'L'</code>、<code>'R'</code> 和 <code>'_'</code> 组成,其中:</p>
|
||||
|
||||
<ul>
|
||||
<li>字符 <code>'L'</code> 和 <code>'R'</code> 表示片段,其中片段 <code>'L'</code> 只有在其左侧直接存在一个 <strong>空位</strong> 时才能向 <strong>左</strong> 移动,而片段 <code>'R'</code> 只有在其右侧直接存在一个 <strong>空位</strong> 时才能向 <strong>右</strong> 移动。</li>
|
||||
<li>字符 <code>'_'</code> 表示可以被 <strong>任意</strong> <code>'L'</code> 或 <code>'R'</code> 片段占据的空位。</li>
|
||||
</ul>
|
||||
|
||||
<p>如果在移动字符串 <code>start</code> 中的片段任意次之后可以得到字符串 <code>target</code> ,返回 <code>true</code> ;否则,返回 <code>false</code> 。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre><strong>输入:</strong>start = "_L__R__R_", target = "L______RR"
|
||||
<strong>输出:</strong>true
|
||||
<strong>解释:</strong>可以从字符串 start 获得 target ,需要进行下面的移动:
|
||||
- 将第一个片段向左移动一步,字符串现在变为 "<strong>L</strong>___R__R_" 。
|
||||
- 将最后一个片段向右移动一步,字符串现在变为 "L___R___<strong>R</strong>" 。
|
||||
- 将第二个片段向右移动散步,字符串现在变为 "L______<strong>R</strong>R" 。
|
||||
可以从字符串 start 得到 target ,所以返回 true 。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre><strong>输入:</strong>start = "R_L_", target = "__LR"
|
||||
<strong>输出:</strong>false
|
||||
<strong>解释:</strong>字符串 start 中的 'R' 片段可以向右移动一步得到 "_<strong>R</strong>L_" 。
|
||||
但是,在这一步之后,不存在可以移动的片段,所以无法从字符串 start 得到 target 。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 3:</strong></p>
|
||||
|
||||
<pre><strong>输入:</strong>start = "_R", target = "R_"
|
||||
<strong>输出:</strong>false
|
||||
<strong>解释:</strong>字符串 start 中的片段只能向右移动,所以无法从字符串 start 得到 target 。</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>n == start.length == target.length</code></li>
|
||||
<li><code>1 <= n <= 10<sup>5</sup></code></li>
|
||||
<li><code>start</code> 和 <code>target</code> 由字符 <code>'L'</code>、<code>'R'</code> 和 <code>'_'</code> 组成</li>
|
||||
</ul>
|
@ -0,0 +1,48 @@
|
||||
<p>给你两个整数 <code>n</code> 和 <code>maxValue</code> ,用于描述一个 <strong>理想数组</strong> 。</p>
|
||||
|
||||
<p>对于下标从 <strong>0</strong> 开始、长度为 <code>n</code> 的整数数组 <code>arr</code> ,如果满足以下条件,则认为该数组是一个 <strong>理想数组</strong> :</p>
|
||||
|
||||
<ul>
|
||||
<li>每个 <code>arr[i]</code> 都是从 <code>1</code> 到 <code>maxValue</code> 范围内的一个值,其中 <code>0 <= i < n</code> 。</li>
|
||||
<li>每个 <code>arr[i]</code> 都可以被 <code>arr[i - 1]</code> 整除,其中 <code>0 < i < n</code> 。</li>
|
||||
</ul>
|
||||
|
||||
<p>返回长度为 <code>n</code> 的 <strong>不同</strong> 理想数组的数目。由于答案可能很大,返回对 <code>10<sup>9</sup> + 7</code> 取余的结果。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre><strong>输入:</strong>n = 2, maxValue = 5
|
||||
<strong>输出:</strong>10
|
||||
<strong>解释:</strong>存在以下理想数组:
|
||||
- 以 1 开头的数组(5 个):[1,1]、[1,2]、[1,3]、[1,4]、[1,5]
|
||||
- 以 2 开头的数组(2 个):[2,2]、[2,4]
|
||||
- 以 3 开头的数组(1 个):[3,3]
|
||||
- 以 4 开头的数组(1 个):[4,4]
|
||||
- 以 5 开头的数组(1 个):[5,5]
|
||||
共计 5 + 2 + 1 + 1 + 1 = 10 个不同理想数组。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre><strong>输入:</strong>n = 5, maxValue = 3
|
||||
<strong>输出:</strong>11
|
||||
<strong>解释:</strong>存在以下理想数组:
|
||||
- 以 1 开头的数组(9 个):
|
||||
- 不含其他不同值(1 个):[1,1,1,1,1]
|
||||
- 含一个不同值 2(4 个):[1,1,1,1,2], [1,1,1,2,2], [1,1,2,2,2], [1,2,2,2,2]
|
||||
- 含一个不同值 3(4 个):[1,1,1,1,3], [1,1,1,3,3], [1,1,3,3,3], [1,3,3,3,3]
|
||||
- 以 2 开头的数组(1 个):[2,2,2,2,2]
|
||||
- 以 3 开头的数组(1 个):[3,3,3,3,3]
|
||||
共计 9 + 1 + 1 = 11 个不同理想数组。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>2 <= n <= 10<sup>4</sup></code></li>
|
||||
<li><code>1 <= maxValue <= 10<sup>4</sup></code></li>
|
||||
</ul>
|
42
leetcode-cn/problem (Chinese)/网格图中递增路径的数目 [number-of-increasing-paths-in-a-grid].html
Normal file
42
leetcode-cn/problem (Chinese)/网格图中递增路径的数目 [number-of-increasing-paths-in-a-grid].html
Normal file
@ -0,0 +1,42 @@
|
||||
<p>给你一个 <code>m x n</code> 的整数网格图 <code>grid</code> ,你可以从一个格子移动到 <code>4</code> 个方向相邻的任意一个格子。</p>
|
||||
|
||||
<p>请你返回在网格图中从 <strong>任意</strong> 格子出发,达到 <strong>任意</strong> 格子,且路径中的数字是 <strong>严格递增</strong> 的路径数目。由于答案可能会很大,请将结果对 <code>10<sup>9</sup> + 7</code> <strong>取余</strong> 后返回。</p>
|
||||
|
||||
<p>如果两条路径中访问过的格子不是完全相同的,那么它们视为两条不同的路径。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<p><img alt="" src="https://assets.leetcode.com/uploads/2022/05/10/griddrawio-4.png" style="width: 181px; height: 121px;"></p>
|
||||
|
||||
<pre><b>输入:</b>grid = [[1,1],[3,4]]
|
||||
<b>输出:</b>8
|
||||
<b>解释:</b>严格递增路径包括:
|
||||
- 长度为 1 的路径:[1],[1],[3],[4] 。
|
||||
- 长度为 2 的路径:[1 -> 3],[1 -> 4],[3 -> 4] 。
|
||||
- 长度为 3 的路径:[1 -> 3 -> 4] 。
|
||||
路径数目为 4 + 3 + 1 = 8 。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre><b>输入:</b>grid = [[1],[2]]
|
||||
<b>输出:</b>3
|
||||
<b>解释:</b>严格递增路径包括:
|
||||
- 长度为 1 的路径:[1],[2] 。
|
||||
- 长度为 2 的路径:[1 -> 2] 。
|
||||
路径数目为 2 + 1 = 3 。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>m == grid.length</code></li>
|
||||
<li><code>n == grid[i].length</code></li>
|
||||
<li><code>1 <= m, n <= 1000</code></li>
|
||||
<li><code>1 <= m * n <= 10<sup>5</sup></code></li>
|
||||
<li><code>1 <= grid[i][j] <= 10<sup>5</sup></code></li>
|
||||
</ul>
|
@ -0,0 +1,35 @@
|
||||
<p>给你两个整数:<code>m</code> 和 <code>n</code> ,表示矩阵的维数。</p>
|
||||
|
||||
<p>另给你一个整数链表的头节点 <code>head</code> 。</p>
|
||||
|
||||
<p>请你生成一个大小为 <code>m x n</code> 的螺旋矩阵,矩阵包含链表中的所有整数。链表中的整数从矩阵 <strong>左上角</strong> 开始、<strong>顺时针 </strong>按 <strong>螺旋</strong> 顺序填充。如果还存在剩余的空格,则用 <code>-1</code> 填充。</p>
|
||||
|
||||
<p>返回生成的矩阵。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
<img alt="" src="https://assets.leetcode.com/uploads/2022/05/09/ex1new.jpg" style="width: 240px; height: 150px;">
|
||||
<pre><strong>输入:</strong>m = 3, n = 5, head = [3,0,2,6,8,1,7,9,4,2,5,5,0]
|
||||
<strong>输出:</strong>[[3,0,2,6,8],[5,0,-1,-1,1],[5,2,4,9,7]]
|
||||
<strong>解释:</strong>上图展示了链表中的整数在矩阵中是如何排布的。
|
||||
注意,矩阵中剩下的空格用 -1 填充。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
<img alt="" src="https://assets.leetcode.com/uploads/2022/05/11/ex2.jpg" style="width: 221px; height: 60px;">
|
||||
<pre><strong>输入:</strong>m = 1, n = 4, head = [0,1,2]
|
||||
<strong>输出:</strong>[[0,1,2,-1]]
|
||||
<strong>解释:</strong>上图展示了链表中的整数在矩阵中是如何从左到右排布的。
|
||||
注意,矩阵中剩下的空格用 -1 填充。</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= m, n <= 10<sup>5</sup></code></li>
|
||||
<li><code>1 <= m * n <= 10<sup>5</sup></code></li>
|
||||
<li>链表中节点数目在范围 <code>[1, m * n]</code> 内</li>
|
||||
<li><code>0 <= Node.val <= 1000</code></li>
|
||||
</ul>
|
47
leetcode-cn/problem (Chinese)/装满杯子需要的最短总时长 [minimum-amount-of-time-to-fill-cups].html
Normal file
47
leetcode-cn/problem (Chinese)/装满杯子需要的最短总时长 [minimum-amount-of-time-to-fill-cups].html
Normal file
@ -0,0 +1,47 @@
|
||||
<p>现有一台饮水机,可以制备冷水、温水和热水。每秒钟,可以装满 <code>2</code> 杯 <strong>不同</strong> 类型的水或者 <code>1</code> 杯任意类型的水。</p>
|
||||
|
||||
<p>给你一个下标从 <strong>0</strong> 开始、长度为 <code>3</code> 的整数数组 <code>amount</code> ,其中 <code>amount[0]</code>、<code>amount[1]</code> 和 <code>amount[2]</code> 分别表示需要装满冷水、温水和热水的杯子数量。返回装满所有杯子所需的 <strong>最少</strong> 秒数。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre><strong>输入:</strong>amount = [1,4,2]
|
||||
<strong>输出:</strong>4
|
||||
<strong>解释:</strong>下面给出一种方案:
|
||||
第 1 秒:装满一杯冷水和一杯温水。
|
||||
第 2 秒:装满一杯温水和一杯热水。
|
||||
第 3 秒:装满一杯温水和一杯热水。
|
||||
第 4 秒:装满一杯温水。
|
||||
可以证明最少需要 4 秒才能装满所有杯子。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre><strong>输入:</strong>amount = [5,4,4]
|
||||
<strong>输出:</strong>7
|
||||
<strong>解释:</strong>下面给出一种方案:
|
||||
第 1 秒:装满一杯冷水和一杯热水。
|
||||
第 2 秒:装满一杯冷水和一杯温水。
|
||||
第 3 秒:装满一杯冷水和一杯温水。
|
||||
第 4 秒:装满一杯温水和一杯热水。
|
||||
第 5 秒:装满一杯冷水和一杯热水。
|
||||
第 6 秒:装满一杯冷水和一杯温水。
|
||||
第 7 秒:装满一杯热水。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 3:</strong></p>
|
||||
|
||||
<pre><strong>输入:</strong>amount = [5,0,0]
|
||||
<strong>输出:</strong>5
|
||||
<strong>解释:</strong>每秒装满一杯冷水。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>amount.length == 3</code></li>
|
||||
<li><code>0 <= amount[i] <= 100</code></li>
|
||||
</ul>
|
50
leetcode-cn/problem (Chinese)/解密消息 [decode-the-message].html
Normal file
50
leetcode-cn/problem (Chinese)/解密消息 [decode-the-message].html
Normal file
@ -0,0 +1,50 @@
|
||||
<p>给你字符串 <code>key</code> 和 <code>message</code> ,分别表示一个加密密钥和一段加密消息。解密 <code>message</code> 的步骤如下:</p>
|
||||
|
||||
<ol>
|
||||
<li>使用 <code>key</code> 中 26 个英文小写字母第一次出现的顺序作为替换表中的字母 <strong>顺序</strong> 。</li>
|
||||
<li>将替换表与普通英文字母表对齐,形成对照表。</li>
|
||||
<li>按照对照表 <strong>替换</strong> <code>message</code> 中的每个字母。</li>
|
||||
<li>空格 <code>' '</code> 保持不变。</li>
|
||||
</ol>
|
||||
|
||||
<ul>
|
||||
<li>例如,<code>key = "<em><strong>hap</strong></em>p<em><strong>y</strong></em> <em><strong>bo</strong></em>y"</code>(实际的加密密钥会包含字母表中每个字母 <strong>至少一次</strong>),据此,可以得到部分对照表(<code>'h' -> 'a'</code>、<code>'a' -> 'b'</code>、<code>'p' -> 'c'</code>、<code>'y' -> 'd'</code>、<code>'b' -> 'e'</code>、<code>'o' -> 'f'</code>)。</li>
|
||||
</ul>
|
||||
|
||||
<p>返回解密后的消息。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<p><img alt="" src="https://assets.leetcode.com/uploads/2022/05/08/ex1new4.jpg" style="width: 752px; height: 150px;" /></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>key = "the quick brown fox jumps over the lazy dog", message = "vkbs bs t suepuv"
|
||||
<strong>输出:</strong>"this is a secret"
|
||||
<strong>解释:</strong>对照表如上图所示。
|
||||
提取 "<em><strong>the</strong></em> <em><strong>quick</strong></em> <em><strong>brown</strong></em> <em><strong>f</strong></em>o<em><strong>x</strong></em> <em><strong>j</strong></em>u<em><strong>mps</strong></em> o<em><strong>v</strong></em>er the <em><strong>lazy</strong></em> <em><strong>d</strong></em>o<em><strong>g</strong></em>" 中每个字母的首次出现可以得到替换表。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<p><img alt="" src="https://assets.leetcode.com/uploads/2022/05/08/ex2new.jpg" style="width: 754px; height: 150px;" /></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>key = "eljuxhpwnyrdgtqkviszcfmabo", message = "zwx hnfx lqantp mnoeius ycgk vcnjrdb"
|
||||
<strong>输出:</strong>"the five boxing wizards jump quickly"
|
||||
<strong>解释:</strong>对照表如上图所示。
|
||||
提取 "<em><strong>eljuxhpwnyrdgtqkviszcfmabo</strong></em>" 中每个字母的首次出现可以得到替换表。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>26 <= key.length <= 2000</code></li>
|
||||
<li><code>key</code> 由小写英文字母及 <code>' '</code> 组成</li>
|
||||
<li><code>key</code> 包含英文字母表中每个字符(<code>'a'</code> 到 <code>'z'</code>)<strong>至少一次</strong></li>
|
||||
<li><code>1 <= message.length <= 2000</code></li>
|
||||
<li><code>message</code> 由小写英文字母和 <code>' '</code> 组成</li>
|
||||
</ul>
|
@ -0,0 +1,51 @@
|
||||
<p>给你一棵 <strong>完整二叉树</strong> 的根,这棵树有以下特征:</p>
|
||||
|
||||
<ul>
|
||||
<li><strong>叶子节点</strong> 要么值为 <code>0</code> 要么值为 <code>1</code> ,其中 <code>0</code> 表示 <code>False</code> ,<code>1</code> 表示 <code>True</code> 。</li>
|
||||
<li><strong>非叶子节点 </strong>要么值为 <code>2</code> 要么值为 <code>3</code> ,其中 <code>2</code> 表示逻辑或 <code>OR</code> ,<code>3</code> 表示逻辑与 <code>AND</code> 。</li>
|
||||
</ul>
|
||||
|
||||
<p><strong>计算</strong> 一个节点的值方式如下:</p>
|
||||
|
||||
<ul>
|
||||
<li>如果节点是个叶子节点,那么节点的 <strong>值</strong> 为它本身,即 <code>True</code> 或者 <code>False</code> 。</li>
|
||||
<li>否则,<strong>计算</strong> 两个孩子的节点值,然后将该节点的运算符对两个孩子值进行 <strong>运算</strong> 。</li>
|
||||
</ul>
|
||||
|
||||
<p>返回根节点<em> </em><code>root</code> 的布尔运算值。</p>
|
||||
|
||||
<p><strong>完整二叉树</strong> 是每个节点有 <code>0</code> 个或者 <code>2</code> 个孩子的二叉树。</p>
|
||||
|
||||
<p><strong>叶子节点</strong> 是没有孩子的节点。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<p><img alt="" src="https://assets.leetcode.com/uploads/2022/05/16/example1drawio1.png" style="width: 700px; height: 252px;"></p>
|
||||
|
||||
<pre><b>输入:</b>root = [2,1,3,null,null,0,1]
|
||||
<b>输出:</b>true
|
||||
<b>解释:</b>上图展示了计算过程。
|
||||
AND 与运算节点的值为 False AND True = False 。
|
||||
OR 运算节点的值为 True OR False = True 。
|
||||
根节点的值为 True ,所以我们返回 true 。</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre><b>输入:</b>root = [0]
|
||||
<b>输出:</b>false
|
||||
<b>解释:</b>根节点是叶子节点,且值为 false,所以我们返回 false 。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li>树中节点数目在 <code>[1, 1000]</code> 之间。</li>
|
||||
<li><code>0 <= Node.val <= 3</code></li>
|
||||
<li>每个节点的孩子数为 <code>0</code> 或 <code>2</code> 。</li>
|
||||
<li>叶子节点的值为 <code>0</code> 或 <code>1</code> 。</li>
|
||||
<li>非叶子节点的值为 <code>2</code> 或 <code>3</code> 。</li>
|
||||
</ul>
|
35
leetcode-cn/problem (English)/元素值大于变化阈值的子数组(English) [subarray-with-elements-greater-than-varying-threshold].html
Normal file
35
leetcode-cn/problem (English)/元素值大于变化阈值的子数组(English) [subarray-with-elements-greater-than-varying-threshold].html
Normal file
@ -0,0 +1,35 @@
|
||||
<p>You are given an integer array <code>nums</code> and an integer <code>threshold</code>.</p>
|
||||
|
||||
<p>Find any subarray of <code>nums</code> of length <code>k</code> such that <strong>every</strong> element in the subarray is <strong>greater</strong> than <code>threshold / k</code>.</p>
|
||||
|
||||
<p>Return<em> the <strong>size</strong> of <strong>any</strong> such subarray</em>. If there is no such subarray, return <code>-1</code>.</p>
|
||||
|
||||
<p>A <strong>subarray</strong> is a contiguous non-empty sequence of elements within an array.</p>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Example 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> nums = [1,3,4,3,1], threshold = 6
|
||||
<strong>Output:</strong> 3
|
||||
<strong>Explanation:</strong> The subarray [3,4,3] has a size of 3, and every element is greater than 6 / 3 = 2.
|
||||
Note that this is the only valid subarray.
|
||||
</pre>
|
||||
|
||||
<p><strong>Example 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> nums = [6,5,6,5,8], threshold = 7
|
||||
<strong>Output:</strong> 1
|
||||
<strong>Explanation:</strong> The subarray [8] has a size of 1, and 8 > 7 / 1 = 7. So 1 is returned.
|
||||
Note that the subarray [6,5] has a size of 2, and every element is greater than 7 / 2 = 3.5.
|
||||
Similarly, the subarrays [6,5,6], [6,5,6,5], [6,5,6,5,8] also satisfy the given conditions.
|
||||
Therefore, 2, 3, 4, or 5 may also be returned.</pre>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Constraints:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= nums.length <= 10<sup>5</sup></code></li>
|
||||
<li><code>1 <= nums[i], threshold <= 10<sup>9</sup></code></li>
|
||||
</ul>
|
43
leetcode-cn/problem (English)/坐上公交的最晚时间(English) [the-latest-time-to-catch-a-bus].html
Normal file
43
leetcode-cn/problem (English)/坐上公交的最晚时间(English) [the-latest-time-to-catch-a-bus].html
Normal file
@ -0,0 +1,43 @@
|
||||
<p>You are given a <strong>0-indexed</strong> integer array <code>buses</code> of length <code>n</code>, where <code>buses[i]</code> represents the departure time of the <code>i<sup>th</sup></code> bus. You are also given a <strong>0-indexed</strong> integer array <code>passengers</code> of length <code>m</code>, where <code>passengers[j]</code> represents the arrival time of the <code>j<sup>th</sup></code> passenger. All bus departure times are unique. All passenger arrival times are unique.</p>
|
||||
|
||||
<p>You are given an integer <code>capacity</code>, which represents the <strong>maximum</strong> number of passengers that can get on each bus.</p>
|
||||
|
||||
<p>The passengers will get on the next available bus. You can get on a bus that will depart at <code>x</code> minutes if you arrive at <code>y</code> minutes where <code>y <= x</code>, and the bus is not full. Passengers with the <strong>earliest</strong> arrival times get on the bus first.</p>
|
||||
|
||||
<p>Return <em>the latest time you may arrive at the bus station to catch a bus</em>. You <strong>cannot</strong> arrive at the same time as another passenger.</p>
|
||||
|
||||
<p><strong>Note: </strong>The arrays <code>buses</code> and <code>passengers</code> are not necessarily sorted.</p>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Example 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> buses = [10,20], passengers = [2,17,18,19], capacity = 2
|
||||
<strong>Output:</strong> 16
|
||||
<strong>Explanation:</strong>
|
||||
The 1<sup>st</sup> bus departs with the 1<sup>st</sup> passenger.
|
||||
The 2<sup>nd</sup> bus departs with you and the 2<sup>nd</sup> passenger.
|
||||
Note that you must not arrive at the same time as the passengers, which is why you must arrive before the 2<sup>nd</sup><sup> </sup>passenger to catch the bus.</pre>
|
||||
|
||||
<p><strong>Example 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> buses = [20,30,10], passengers = [19,13,26,4,25,11,21], capacity = 2
|
||||
<strong>Output:</strong> 20
|
||||
<strong>Explanation:</strong>
|
||||
The 1<sup>st</sup> bus departs with the 4<sup>th</sup> passenger.
|
||||
The 2<sup>nd</sup> bus departs with the 6<sup>th</sup> and 2<sup>nd</sup><sup> </sup>passengers.
|
||||
The 3<sup>rd</sup> bus departs with the 1<sup>s</sup><sup>t</sup> passenger and you.
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Constraints:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>n == buses.length</code></li>
|
||||
<li><code>m == passengers.length</code></li>
|
||||
<li><code>1 <= n, m, capacity <= 10<sup>5</sup></code></li>
|
||||
<li><code>2 <= buses[i], passengers[i] <= 10<sup>9</sup></code></li>
|
||||
<li>Each element in <code>buses</code> is <strong>unique</strong>.</li>
|
||||
<li>Each element in <code>passengers</code> is <strong>unique</strong>.</li>
|
||||
</ul>
|
@ -0,0 +1,30 @@
|
||||
<p>Given an integer array <code>nums</code> of <code>2n</code> integers, group these integers into <code>n</code> pairs <code>(a<sub>1</sub>, b<sub>1</sub>), (a<sub>2</sub>, b<sub>2</sub>), ..., (a<sub>n</sub>, b<sub>n</sub>)</code> such that the sum of <code>min(a<sub>i</sub>, b<sub>i</sub>)</code> for all <code>i</code> is <strong>maximized</strong>. Return<em> the maximized sum</em>.</p>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Example 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> nums = [1,4,3,2]
|
||||
<strong>Output:</strong> 4
|
||||
<strong>Explanation:</strong> All possible pairings (ignoring the ordering of elements) are:
|
||||
1. (1, 4), (2, 3) -> min(1, 4) + min(2, 3) = 1 + 2 = 3
|
||||
2. (1, 3), (2, 4) -> min(1, 3) + min(2, 4) = 1 + 2 = 3
|
||||
3. (1, 2), (3, 4) -> min(1, 2) + min(3, 4) = 1 + 3 = 4
|
||||
So the maximum possible sum is 4.</pre>
|
||||
|
||||
<p><strong>Example 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> nums = [6,2,6,5,1,2]
|
||||
<strong>Output:</strong> 9
|
||||
<strong>Explanation:</strong> The optimal pairing is (2, 1), (2, 5), (6, 6). min(2, 1) + min(2, 5) + min(6, 6) = 1 + 2 + 6 = 9.
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Constraints:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= n <= 10<sup>4</sup></code></li>
|
||||
<li><code>nums.length == 2 * n</code></li>
|
||||
<li><code>-10<sup>4</sup> <= nums[i] <= 10<sup>4</sup></code></li>
|
||||
</ul>
|
40
leetcode-cn/problem (English)/无限集中的最小数字(English) [smallest-number-in-infinite-set].html
Normal file
40
leetcode-cn/problem (English)/无限集中的最小数字(English) [smallest-number-in-infinite-set].html
Normal file
@ -0,0 +1,40 @@
|
||||
<p>You have a set which contains all positive integers <code>[1, 2, 3, 4, 5, ...]</code>.</p>
|
||||
|
||||
<p>Implement the <code>SmallestInfiniteSet</code> class:</p>
|
||||
|
||||
<ul>
|
||||
<li><code>SmallestInfiniteSet()</code> Initializes the <strong>SmallestInfiniteSet</strong> object to contain <strong>all</strong> positive integers.</li>
|
||||
<li><code>int popSmallest()</code> <strong>Removes</strong> and returns the smallest integer contained in the infinite set.</li>
|
||||
<li><code>void addBack(int num)</code> <strong>Adds</strong> a positive integer <code>num</code> back into the infinite set, if it is <strong>not</strong> already in the infinite set.</li>
|
||||
</ul>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Example 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input</strong>
|
||||
["SmallestInfiniteSet", "addBack", "popSmallest", "popSmallest", "popSmallest", "addBack", "popSmallest", "popSmallest", "popSmallest"]
|
||||
[[], [2], [], [], [], [1], [], [], []]
|
||||
<strong>Output</strong>
|
||||
[null, null, 1, 2, 3, null, 1, 4, 5]
|
||||
|
||||
<strong>Explanation</strong>
|
||||
SmallestInfiniteSet smallestInfiniteSet = new SmallestInfiniteSet();
|
||||
smallestInfiniteSet.addBack(2); // 2 is already in the set, so no change is made.
|
||||
smallestInfiniteSet.popSmallest(); // return 1, since 1 is the smallest number, and remove it from the set.
|
||||
smallestInfiniteSet.popSmallest(); // return 2, and remove it from the set.
|
||||
smallestInfiniteSet.popSmallest(); // return 3, and remove it from the set.
|
||||
smallestInfiniteSet.addBack(1); // 1 is added back to the set.
|
||||
smallestInfiniteSet.popSmallest(); // return 1, since 1 was added back to the set and
|
||||
// is the smallest number, and remove it from the set.
|
||||
smallestInfiniteSet.popSmallest(); // return 4, and remove it from the set.
|
||||
smallestInfiniteSet.popSmallest(); // return 5, and remove it from the set.
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Constraints:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= num <= 1000</code></li>
|
||||
<li>At most <code>1000</code> calls will be made <strong>in total</strong> to <code>popSmallest</code> and <code>addBack</code>.</li>
|
||||
</ul>
|
41
leetcode-cn/problem (English)/最小差值平方和(English) [minimum-sum-of-squared-difference].html
Normal file
41
leetcode-cn/problem (English)/最小差值平方和(English) [minimum-sum-of-squared-difference].html
Normal file
@ -0,0 +1,41 @@
|
||||
<p>You are given two positive <strong>0-indexed</strong> integer arrays <code>nums1</code> and <code>nums2</code>, both of length <code>n</code>.</p>
|
||||
|
||||
<p>The <strong>sum of squared difference</strong> of arrays <code>nums1</code> and <code>nums2</code> is defined as the <strong>sum</strong> of <code>(nums1[i] - nums2[i])<sup>2</sup></code> for each <code>0 <= i < n</code>.</p>
|
||||
|
||||
<p>You are also given two positive integers <code>k1</code> and <code>k2</code>. You can modify any of the elements of <code>nums1</code> by <code>+1</code> or <code>-1</code> at most <code>k1</code> times. Similarly, you can modify any of the elements of <code>nums2</code> by <code>+1</code> or <code>-1</code> at most <code>k2</code> times.</p>
|
||||
|
||||
<p>Return <em>the minimum <strong>sum of squared difference</strong> after modifying array </em><code>nums1</code><em> at most </em><code>k1</code><em> times and modifying array </em><code>nums2</code><em> at most </em><code>k2</code><em> times</em>.</p>
|
||||
|
||||
<p><strong>Note</strong>: You are allowed to modify the array elements to become <strong>negative</strong> integers.</p>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Example 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> nums1 = [1,2,3,4], nums2 = [2,10,20,19], k1 = 0, k2 = 0
|
||||
<strong>Output:</strong> 579
|
||||
<strong>Explanation:</strong> The elements in nums1 and nums2 cannot be modified because k1 = 0 and k2 = 0.
|
||||
The sum of square difference will be: (1 - 2)<sup>2 </sup>+ (2 - 10)<sup>2 </sup>+ (3 - 20)<sup>2 </sup>+ (4 - 19)<sup>2</sup> = 579.
|
||||
</pre>
|
||||
|
||||
<p><strong>Example 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> nums1 = [1,4,10,12], nums2 = [5,8,6,9], k1 = 1, k2 = 1
|
||||
<strong>Output:</strong> 43
|
||||
<strong>Explanation:</strong> One way to obtain the minimum sum of square difference is:
|
||||
- Increase nums1[0] once.
|
||||
- Increase nums2[2] once.
|
||||
The minimum of the sum of square difference will be:
|
||||
(2 - 5)<sup>2 </sup>+ (4 - 8)<sup>2 </sup>+ (10 - 7)<sup>2 </sup>+ (12 - 9)<sup>2</sup> = 43.
|
||||
Note that, there are other ways to obtain the minimum of the sum of square difference, but there is no way to obtain a sum smaller than 43.</pre>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Constraints:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>n == nums1.length == nums2.length</code></li>
|
||||
<li><code>1 <= n <= 10<sup>5</sup></code></li>
|
||||
<li><code>0 <= nums1[i], nums2[i] <= 10<sup>5</sup></code></li>
|
||||
<li><code>0 <= k1, k2 <= 10<sup>9</sup></code></li>
|
||||
</ul>
|
40
leetcode-cn/problem (English)/知道秘密的人数(English) [number-of-people-aware-of-a-secret].html
Normal file
40
leetcode-cn/problem (English)/知道秘密的人数(English) [number-of-people-aware-of-a-secret].html
Normal file
@ -0,0 +1,40 @@
|
||||
<p>On day <code>1</code>, one person discovers a secret.</p>
|
||||
|
||||
<p>You are given an integer <code>delay</code>, which means that each person will <strong>share</strong> the secret with a new person <strong>every day</strong>, starting from <code>delay</code> days after discovering the secret. You are also given an integer <code>forget</code>, which means that each person will <strong>forget</strong> the secret <code>forget</code> days after discovering it. A person <strong>cannot</strong> share the secret on the same day they forgot it, or on any day afterwards.</p>
|
||||
|
||||
<p>Given an integer <code>n</code>, return<em> the number of people who know the secret at the end of day </em><code>n</code>. Since the answer may be very large, return it <strong>modulo</strong> <code>10<sup>9</sup> + 7</code>.</p>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Example 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> n = 6, delay = 2, forget = 4
|
||||
<strong>Output:</strong> 5
|
||||
<strong>Explanation:</strong>
|
||||
Day 1: Suppose the first person is named A. (1 person)
|
||||
Day 2: A is the only person who knows the secret. (1 person)
|
||||
Day 3: A shares the secret with a new person, B. (2 people)
|
||||
Day 4: A shares the secret with a new person, C. (3 people)
|
||||
Day 5: A forgets the secret, and B shares the secret with a new person, D. (3 people)
|
||||
Day 6: B shares the secret with E, and C shares the secret with F. (5 people)
|
||||
</pre>
|
||||
|
||||
<p><strong>Example 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> n = 4, delay = 1, forget = 3
|
||||
<strong>Output:</strong> 6
|
||||
<strong>Explanation:</strong>
|
||||
Day 1: The first person is named A. (1 person)
|
||||
Day 2: A shares the secret with B. (2 people)
|
||||
Day 3: A and B share the secret with 2 new people, C and D. (4 people)
|
||||
Day 4: A forgets the secret. B, C, and D share the secret with 3 new people. (6 people)
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Constraints:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>2 <= n <= 1000</code></li>
|
||||
<li><code>1 <= delay < forget <= n</code></li>
|
||||
</ul>
|
46
leetcode-cn/problem (English)/移动片段得到字符串(English) [move-pieces-to-obtain-a-string].html
Normal file
46
leetcode-cn/problem (English)/移动片段得到字符串(English) [move-pieces-to-obtain-a-string].html
Normal file
@ -0,0 +1,46 @@
|
||||
<p>You are given two strings <code>start</code> and <code>target</code>, both of length <code>n</code>. Each string consists <strong>only</strong> of the characters <code>'L'</code>, <code>'R'</code>, and <code>'_'</code> where:</p>
|
||||
|
||||
<ul>
|
||||
<li>The characters <code>'L'</code> and <code>'R'</code> represent pieces, where a piece <code>'L'</code> can move to the <strong>left</strong> only if there is a <strong>blank</strong> space directly to its left, and a piece <code>'R'</code> can move to the <strong>right</strong> only if there is a <strong>blank</strong> space directly to its right.</li>
|
||||
<li>The character <code>'_'</code> represents a blank space that can be occupied by <strong>any</strong> of the <code>'L'</code> or <code>'R'</code> pieces.</li>
|
||||
</ul>
|
||||
|
||||
<p>Return <code>true</code> <em>if it is possible to obtain the string</em> <code>target</code><em> by moving the pieces of the string </em><code>start</code><em> <strong>any</strong> number of times</em>. Otherwise, return <code>false</code>.</p>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Example 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> start = "_L__R__R_", target = "L______RR"
|
||||
<strong>Output:</strong> true
|
||||
<strong>Explanation:</strong> We can obtain the string target from start by doing the following moves:
|
||||
- Move the first piece one step to the left, start becomes equal to "<strong>L</strong>___R__R_".
|
||||
- Move the last piece one step to the right, start becomes equal to "L___R___<strong>R</strong>".
|
||||
- Move the second piece three steps to the right, start becomes equal to "L______<strong>R</strong>R".
|
||||
Since it is possible to get the string target from start, we return true.
|
||||
</pre>
|
||||
|
||||
<p><strong>Example 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> start = "R_L_", target = "__LR"
|
||||
<strong>Output:</strong> false
|
||||
<strong>Explanation:</strong> The 'R' piece in the string start can move one step to the right to obtain "_<strong>R</strong>L_".
|
||||
After that, no pieces can move anymore, so it is impossible to obtain the string target from start.
|
||||
</pre>
|
||||
|
||||
<p><strong>Example 3:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> start = "_R", target = "R_"
|
||||
<strong>Output:</strong> false
|
||||
<strong>Explanation:</strong> The piece in the string start can move only to the right, so it is impossible to obtain the string target from start.</pre>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Constraints:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>n == start.length == target.length</code></li>
|
||||
<li><code>1 <= n <= 10<sup>5</sup></code></li>
|
||||
<li><code>start</code> and <code>target</code> consist of the characters <code>'L'</code>, <code>'R'</code>, and <code>'_'</code>.</li>
|
||||
</ul>
|
48
leetcode-cn/problem (English)/统计理想数组的数目(English) [count-the-number-of-ideal-arrays].html
Normal file
48
leetcode-cn/problem (English)/统计理想数组的数目(English) [count-the-number-of-ideal-arrays].html
Normal file
@ -0,0 +1,48 @@
|
||||
<p>You are given two integers <code>n</code> and <code>maxValue</code>, which are used to describe an <strong>ideal</strong> array.</p>
|
||||
|
||||
<p>A <strong>0-indexed</strong> integer array <code>arr</code> of length <code>n</code> is considered <strong>ideal</strong> if the following conditions hold:</p>
|
||||
|
||||
<ul>
|
||||
<li>Every <code>arr[i]</code> is a value from <code>1</code> to <code>maxValue</code>, for <code>0 <= i < n</code>.</li>
|
||||
<li>Every <code>arr[i]</code> is divisible by <code>arr[i - 1]</code>, for <code>0 < i < n</code>.</li>
|
||||
</ul>
|
||||
|
||||
<p>Return <em>the number of <strong>distinct</strong> ideal arrays of length </em><code>n</code>. Since the answer may be very large, return it modulo <code>10<sup>9</sup> + 7</code>.</p>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Example 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> n = 2, maxValue = 5
|
||||
<strong>Output:</strong> 10
|
||||
<strong>Explanation:</strong> The following are the possible ideal arrays:
|
||||
- Arrays starting with the value 1 (5 arrays): [1,1], [1,2], [1,3], [1,4], [1,5]
|
||||
- Arrays starting with the value 2 (2 arrays): [2,2], [2,4]
|
||||
- Arrays starting with the value 3 (1 array): [3,3]
|
||||
- Arrays starting with the value 4 (1 array): [4,4]
|
||||
- Arrays starting with the value 5 (1 array): [5,5]
|
||||
There are a total of 5 + 2 + 1 + 1 + 1 = 10 distinct ideal arrays.
|
||||
</pre>
|
||||
|
||||
<p><strong>Example 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> n = 5, maxValue = 3
|
||||
<strong>Output:</strong> 11
|
||||
<strong>Explanation:</strong> The following are the possible ideal arrays:
|
||||
- Arrays starting with the value 1 (9 arrays):
|
||||
- With no other distinct values (1 array): [1,1,1,1,1]
|
||||
- With 2<sup>nd</sup> distinct value 2 (4 arrays): [1,1,1,1,2], [1,1,1,2,2], [1,1,2,2,2], [1,2,2,2,2]
|
||||
- With 2<sup>nd</sup> distinct value 3 (4 arrays): [1,1,1,1,3], [1,1,1,3,3], [1,1,3,3,3], [1,3,3,3,3]
|
||||
- Arrays starting with the value 2 (1 array): [2,2,2,2,2]
|
||||
- Arrays starting with the value 3 (1 array): [3,3,3,3,3]
|
||||
There are a total of 9 + 1 + 1 = 11 distinct ideal arrays.
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Constraints:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>2 <= n <= 10<sup>4</sup></code></li>
|
||||
<li><code>1 <= maxValue <= 10<sup>4</sup></code></li>
|
||||
</ul>
|
40
leetcode-cn/problem (English)/网格图中递增路径的数目(English) [number-of-increasing-paths-in-a-grid].html
Normal file
40
leetcode-cn/problem (English)/网格图中递增路径的数目(English) [number-of-increasing-paths-in-a-grid].html
Normal file
@ -0,0 +1,40 @@
|
||||
<p>You are given an <code>m x n</code> integer matrix <code>grid</code>, where you can move from a cell to any adjacent cell in all <code>4</code> directions.</p>
|
||||
|
||||
<p>Return <em>the number of <strong>strictly</strong> <strong>increasing</strong> paths in the grid such that you can start from <strong>any</strong> cell and end at <strong>any</strong> cell. </em>Since the answer may be very large, return it <strong>modulo</strong> <code>10<sup>9</sup> + 7</code>.</p>
|
||||
|
||||
<p>Two paths are considered different if they do not have exactly the same sequence of visited cells.</p>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Example 1:</strong></p>
|
||||
<img alt="" src="https://assets.leetcode.com/uploads/2022/05/10/griddrawio-4.png" style="width: 181px; height: 121px;" />
|
||||
<pre>
|
||||
<strong>Input:</strong> grid = [[1,1],[3,4]]
|
||||
<strong>Output:</strong> 8
|
||||
<strong>Explanation:</strong> The strictly increasing paths are:
|
||||
- Paths with length 1: [1], [1], [3], [4].
|
||||
- Paths with length 2: [1 -> 3], [1 -> 4], [3 -> 4].
|
||||
- Paths with length 3: [1 -> 3 -> 4].
|
||||
The total number of paths is 4 + 3 + 1 = 8.
|
||||
</pre>
|
||||
|
||||
<p><strong>Example 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> grid = [[1],[2]]
|
||||
<strong>Output:</strong> 3
|
||||
<strong>Explanation:</strong> The strictly increasing paths are:
|
||||
- Paths with length 1: [1], [2].
|
||||
- Paths with length 2: [1 -> 2].
|
||||
The total number of paths is 2 + 1 = 3.
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Constraints:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>m == grid.length</code></li>
|
||||
<li><code>n == grid[i].length</code></li>
|
||||
<li><code>1 <= m, n <= 1000</code></li>
|
||||
<li><code>1 <= m * n <= 10<sup>5</sup></code></li>
|
||||
<li><code>1 <= grid[i][j] <= 10<sup>5</sup></code></li>
|
||||
</ul>
|
@ -0,0 +1,35 @@
|
||||
<p>You are given two integers <code>m</code> and <code>n</code>, which represent the dimensions of a matrix.</p>
|
||||
|
||||
<p>You are also given the <code>head</code> of a linked list of integers.</p>
|
||||
|
||||
<p>Generate an <code>m x n</code> matrix that contains the integers in the linked list presented in <strong>spiral</strong> order <strong>(clockwise)</strong>, starting from the <strong>top-left</strong> of the matrix. If there are remaining empty spaces, fill them with <code>-1</code>.</p>
|
||||
|
||||
<p>Return <em>the generated matrix</em>.</p>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Example 1:</strong></p>
|
||||
<img alt="" src="https://assets.leetcode.com/uploads/2022/05/09/ex1new.jpg" style="width: 240px; height: 150px;" />
|
||||
<pre>
|
||||
<strong>Input:</strong> m = 3, n = 5, head = [3,0,2,6,8,1,7,9,4,2,5,5,0]
|
||||
<strong>Output:</strong> [[3,0,2,6,8],[5,0,-1,-1,1],[5,2,4,9,7]]
|
||||
<strong>Explanation:</strong> The diagram above shows how the values are printed in the matrix.
|
||||
Note that the remaining spaces in the matrix are filled with -1.
|
||||
</pre>
|
||||
|
||||
<p><strong>Example 2:</strong></p>
|
||||
<img alt="" src="https://assets.leetcode.com/uploads/2022/05/11/ex2.jpg" style="width: 221px; height: 60px;" />
|
||||
<pre>
|
||||
<strong>Input:</strong> m = 1, n = 4, head = [0,1,2]
|
||||
<strong>Output:</strong> [[0,1,2,-1]]
|
||||
<strong>Explanation:</strong> The diagram above shows how the values are printed from left to right in the matrix.
|
||||
The last space in the matrix is set to -1.</pre>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Constraints:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= m, n <= 10<sup>5</sup></code></li>
|
||||
<li><code>1 <= m * n <= 10<sup>5</sup></code></li>
|
||||
<li>The number of nodes in the list is in the range <code>[1, m * n]</code>.</li>
|
||||
<li><code>0 <= Node.val <= 1000</code></li>
|
||||
</ul>
|
48
leetcode-cn/problem (English)/装满杯子需要的最短总时长(English) [minimum-amount-of-time-to-fill-cups].html
Normal file
48
leetcode-cn/problem (English)/装满杯子需要的最短总时长(English) [minimum-amount-of-time-to-fill-cups].html
Normal file
@ -0,0 +1,48 @@
|
||||
<p>You have a water dispenser that can dispense cold, warm, and hot water. Every second, you can either fill up <code>2</code> cups with <strong>different</strong> types of water, or <code>1</code> cup of any type of water.</p>
|
||||
|
||||
<p>You are given a <strong>0-indexed</strong> integer array <code>amount</code> of length <code>3</code> where <code>amount[0]</code>, <code>amount[1]</code>, and <code>amount[2]</code> denote the number of cold, warm, and hot water cups you need to fill respectively. Return <em>the <strong>minimum</strong> number of seconds needed to fill up all the cups</em>.</p>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Example 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> amount = [1,4,2]
|
||||
<strong>Output:</strong> 4
|
||||
<strong>Explanation:</strong> One way to fill up the cups is:
|
||||
Second 1: Fill up a cold cup and a warm cup.
|
||||
Second 2: Fill up a warm cup and a hot cup.
|
||||
Second 3: Fill up a warm cup and a hot cup.
|
||||
Second 4: Fill up a warm cup.
|
||||
It can be proven that 4 is the minimum number of seconds needed.
|
||||
</pre>
|
||||
|
||||
<p><strong>Example 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> amount = [5,4,4]
|
||||
<strong>Output:</strong> 7
|
||||
<strong>Explanation:</strong> One way to fill up the cups is:
|
||||
Second 1: Fill up a cold cup, and a hot cup.
|
||||
Second 2: Fill up a cold cup, and a warm cup.
|
||||
Second 3: Fill up a cold cup, and a warm cup.
|
||||
Second 4: Fill up a warm cup, and a hot cup.
|
||||
Second 5: Fill up a cold cup, and a hot cup.
|
||||
Second 6: Fill up a cold cup, and a warm cup.
|
||||
Second 7: Fill up a hot cup.
|
||||
</pre>
|
||||
|
||||
<p><strong>Example 3:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> amount = [5,0,0]
|
||||
<strong>Output:</strong> 5
|
||||
<strong>Explanation:</strong> Every second, we fill up a cold cup.
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Constraints:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>amount.length == 3</code></li>
|
||||
<li><code>0 <= amount[i] <= 100</code></li>
|
||||
</ul>
|
@ -0,0 +1,44 @@
|
||||
<p>You are given the strings <code>key</code> and <code>message</code>, which represent a cipher key and a secret message, respectively. The steps to decode <code>message</code> are as follows:</p>
|
||||
|
||||
<ol>
|
||||
<li>Use the <strong>first</strong> appearance of all 26 lowercase English letters in <code>key</code> as the <strong>order</strong> of the substitution table.</li>
|
||||
<li>Align the substitution table with the regular English alphabet.</li>
|
||||
<li>Each letter in <code>message</code> is then <strong>substituted</strong> using the table.</li>
|
||||
<li>Spaces <code>' '</code> are transformed to themselves.</li>
|
||||
</ol>
|
||||
|
||||
<ul>
|
||||
<li>For example, given <code>key = "<u><strong>hap</strong></u>p<u><strong>y</strong></u> <u><strong>bo</strong></u>y"</code> (actual key would have <strong>at least one</strong> instance of each letter in the alphabet), we have the partial substitution table of (<code>'h' -> 'a'</code>, <code>'a' -> 'b'</code>, <code>'p' -> 'c'</code>, <code>'y' -> 'd'</code>, <code>'b' -> 'e'</code>, <code>'o' -> 'f'</code>).</li>
|
||||
</ul>
|
||||
|
||||
<p>Return <em>the decoded message</em>.</p>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Example 1:</strong></p>
|
||||
<img alt="" src="https://assets.leetcode.com/uploads/2022/05/08/ex1new4.jpg" style="width: 752px; height: 150px;" />
|
||||
<pre>
|
||||
<strong>Input:</strong> key = "the quick brown fox jumps over the lazy dog", message = "vkbs bs t suepuv"
|
||||
<strong>Output:</strong> "this is a secret"
|
||||
<strong>Explanation:</strong> The diagram above shows the substitution table.
|
||||
It is obtained by taking the first appearance of each letter in "<u><strong>the</strong></u> <u><strong>quick</strong></u> <u><strong>brown</strong></u> <u><strong>f</strong></u>o<u><strong>x</strong></u> <u><strong>j</strong></u>u<u><strong>mps</strong></u> o<u><strong>v</strong></u>er the <u><strong>lazy</strong></u> <u><strong>d</strong></u>o<u><strong>g</strong></u>".
|
||||
</pre>
|
||||
|
||||
<p><strong>Example 2:</strong></p>
|
||||
<img alt="" src="https://assets.leetcode.com/uploads/2022/05/08/ex2new.jpg" style="width: 754px; height: 150px;" />
|
||||
<pre>
|
||||
<strong>Input:</strong> key = "eljuxhpwnyrdgtqkviszcfmabo", message = "zwx hnfx lqantp mnoeius ycgk vcnjrdb"
|
||||
<strong>Output:</strong> "the five boxing wizards jump quickly"
|
||||
<strong>Explanation:</strong> The diagram above shows the substitution table.
|
||||
It is obtained by taking the first appearance of each letter in "<u><strong>eljuxhpwnyrdgtqkviszcfmabo</strong></u>".
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Constraints:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>26 <= key.length <= 2000</code></li>
|
||||
<li><code>key</code> consists of lowercase English letters and <code>' '</code>.</li>
|
||||
<li><code>key</code> contains every letter in the English alphabet (<code>'a'</code> to <code>'z'</code>) <strong>at least once</strong>.</li>
|
||||
<li><code>1 <= message.length <= 2000</code></li>
|
||||
<li><code>message</code> consists of lowercase English letters and <code>' '</code>.</li>
|
||||
</ul>
|
@ -0,0 +1,49 @@
|
||||
<p>You are given the <code>root</code> of a <strong>full binary tree</strong> with the following properties:</p>
|
||||
|
||||
<ul>
|
||||
<li><strong>Leaf nodes</strong> have either the value <code>0</code> or <code>1</code>, where <code>0</code> represents <code>False</code> and <code>1</code> represents <code>True</code>.</li>
|
||||
<li><strong>Non-leaf nodes</strong> have either the value <code>2</code> or <code>3</code>, where <code>2</code> represents the boolean <code>OR</code> and <code>3</code> represents the boolean <code>AND</code>.</li>
|
||||
</ul>
|
||||
|
||||
<p>The <strong>evaluation</strong> of a node is as follows:</p>
|
||||
|
||||
<ul>
|
||||
<li>If the node is a leaf node, the evaluation is the <strong>value</strong> of the node, i.e. <code>True</code> or <code>False</code>.</li>
|
||||
<li>Otherwise, <strong>evaluate</strong> the node's two children and <strong>apply</strong> the boolean operation of its value with the children's evaluations.</li>
|
||||
</ul>
|
||||
|
||||
<p>Return<em> the boolean result of <strong>evaluating</strong> the </em><code>root</code><em> node.</em></p>
|
||||
|
||||
<p>A <strong>full binary tree</strong> is a binary tree where each node has either <code>0</code> or <code>2</code> children.</p>
|
||||
|
||||
<p>A <strong>leaf node</strong> is a node that has zero children.</p>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Example 1:</strong></p>
|
||||
<img alt="" src="https://assets.leetcode.com/uploads/2022/05/16/example1drawio1.png" style="width: 700px; height: 252px;" />
|
||||
<pre>
|
||||
<strong>Input:</strong> root = [2,1,3,null,null,0,1]
|
||||
<strong>Output:</strong> true
|
||||
<strong>Explanation:</strong> The above diagram illustrates the evaluation process.
|
||||
The AND node evaluates to False AND True = False.
|
||||
The OR node evaluates to True OR False = True.
|
||||
The root node evaluates to True, so we return true.</pre>
|
||||
|
||||
<p><strong>Example 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> root = [0]
|
||||
<strong>Output:</strong> false
|
||||
<strong>Explanation:</strong> The root node is a leaf node and it evaluates to false, so we return false.
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Constraints:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li>The number of nodes in the tree is in the range <code>[1, 1000]</code>.</li>
|
||||
<li><code>0 <= Node.val <= 3</code></li>
|
||||
<li>Every node has either <code>0</code> or <code>2</code> children.</li>
|
||||
<li>Leaf nodes have a value of <code>0</code> or <code>1</code>.</li>
|
||||
<li>Non-leaf nodes have a value of <code>2</code> or <code>3</code>.</li>
|
||||
</ul>
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@ -0,0 +1,64 @@
|
||||
{
|
||||
"data": {
|
||||
"question": {
|
||||
"questionId": "2451",
|
||||
"questionFrontendId": "2324",
|
||||
"boundTopicId": null,
|
||||
"title": "Product Sales Analysis IV",
|
||||
"titleSlug": "product-sales-analysis-iv",
|
||||
"content": null,
|
||||
"translatedTitle": null,
|
||||
"translatedContent": null,
|
||||
"isPaidOnly": true,
|
||||
"difficulty": "Medium",
|
||||
"likes": 3,
|
||||
"dislikes": 1,
|
||||
"isLiked": null,
|
||||
"similarQuestions": "[{\"title\": \"Product Sales Analysis I\", \"titleSlug\": \"product-sales-analysis-i\", \"difficulty\": \"Easy\", \"translatedTitle\": null}, {\"title\": \"Product Sales Analysis II\", \"titleSlug\": \"product-sales-analysis-ii\", \"difficulty\": \"Easy\", \"translatedTitle\": null}, {\"title\": \"Product Sales Analysis III\", \"titleSlug\": \"product-sales-analysis-iii\", \"difficulty\": \"Medium\", \"translatedTitle\": null}]",
|
||||
"exampleTestcases": null,
|
||||
"categoryTitle": "Database",
|
||||
"contributors": [],
|
||||
"topicTags": [
|
||||
{
|
||||
"name": "Database",
|
||||
"slug": "database",
|
||||
"translatedName": null,
|
||||
"__typename": "TopicTagNode"
|
||||
}
|
||||
],
|
||||
"companyTagStats": null,
|
||||
"codeSnippets": null,
|
||||
"stats": "{\"totalAccepted\": \"439\", \"totalSubmission\": \"501\", \"totalAcceptedRaw\": 439, \"totalSubmissionRaw\": 501, \"acRate\": \"87.6%\"}",
|
||||
"hints": [],
|
||||
"solution": null,
|
||||
"status": null,
|
||||
"sampleTestCase": "{\"headers\": {\"Sales\": [\"sale_id\", \"product_id\", \"user_id\", \"quantity\"], \"Product\": [\"product_id\", \"price\"]}, \"rows\": {\"Sales\": [[1, 1, 101, 10], [2, 3, 101, 7], [3, 1, 102, 9], [4, 2, 102, 6], [5, 3, 102, 10], [6, 1, 102, 6]], \"Product\": [[1, 10], [2, 25], [3, 15]]}}",
|
||||
"metaData": "{\n \"mysql\": [\n \"Create table If Not Exists Sales (sale_id int, product_id int, user_id int, quantity int)\",\n \"Create table If Not Exists Product (product_id int, price int)\"\n ],\n \"mssql\": [\n \"Create table Sales (sale_id int, product_id int, user_id int, quantity int)\",\n \"Create table Product (product_id int, price int)\"\n ],\n \"oraclesql\": [\n \"Create table Sales (sale_id int, product_id int, user_id int, quantity int)\",\n \"Create table Product (product_id int, price int)\"\n ],\n \"database\": true\n}",
|
||||
"judgerAvailable": true,
|
||||
"judgeType": "large",
|
||||
"mysqlSchemas": [
|
||||
"Create table If Not Exists Sales (sale_id int, product_id int, user_id int, quantity int)",
|
||||
"Create table If Not Exists Product (product_id int, price int)",
|
||||
"Truncate table Sales",
|
||||
"insert into Sales (sale_id, product_id, user_id, quantity) values ('1', '1', '101', '10')",
|
||||
"insert into Sales (sale_id, product_id, user_id, quantity) values ('2', '3', '101', '7')",
|
||||
"insert into Sales (sale_id, product_id, user_id, quantity) values ('3', '1', '102', '9')",
|
||||
"insert into Sales (sale_id, product_id, user_id, quantity) values ('4', '2', '102', '6')",
|
||||
"insert into Sales (sale_id, product_id, user_id, quantity) values ('5', '3', '102', '10')",
|
||||
"insert into Sales (sale_id, product_id, user_id, quantity) values ('6', '1', '102', '6')",
|
||||
"Truncate table Product",
|
||||
"insert into Product (product_id, price) values ('1', '10')",
|
||||
"insert into Product (product_id, price) values ('2', '25')",
|
||||
"insert into Product (product_id, price) values ('3', '15')"
|
||||
],
|
||||
"enableRunCode": true,
|
||||
"enableTestMode": false,
|
||||
"enableDebugger": false,
|
||||
"envInfo": "{\"mysql\": [\"MySQL\", \"<p><code>MySQL 8.0</code>.</p>\"], \"mssql\": [\"MS SQL Server\", \"<p><code>mssql server 2019</code>.</p>\"], \"oraclesql\": [\"Oracle\", \"<p><code>Oracle Sql 11.2</code>.</p>\"]}",
|
||||
"libraryUrl": null,
|
||||
"adminUrl": null,
|
||||
"challengeQuestion": null,
|
||||
"__typename": "QuestionNode"
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,56 @@
|
||||
{
|
||||
"data": {
|
||||
"question": {
|
||||
"questionId": "2452",
|
||||
"questionFrontendId": "2329",
|
||||
"boundTopicId": null,
|
||||
"title": "Product Sales Analysis V",
|
||||
"titleSlug": "product-sales-analysis-v",
|
||||
"content": null,
|
||||
"translatedTitle": null,
|
||||
"translatedContent": null,
|
||||
"isPaidOnly": true,
|
||||
"difficulty": "Medium",
|
||||
"likes": 0,
|
||||
"dislikes": 5,
|
||||
"isLiked": null,
|
||||
"similarQuestions": "[{\"title\": \"Product Sales Analysis I\", \"titleSlug\": \"product-sales-analysis-i\", \"difficulty\": \"Easy\", \"translatedTitle\": null}, {\"title\": \"Product Sales Analysis II\", \"titleSlug\": \"product-sales-analysis-ii\", \"difficulty\": \"Easy\", \"translatedTitle\": null}, {\"title\": \"Product Sales Analysis III\", \"titleSlug\": \"product-sales-analysis-iii\", \"difficulty\": \"Medium\", \"translatedTitle\": null}]",
|
||||
"exampleTestcases": "{\"headers\": {\"Sales\": [\"sale_id\", \"product_id\", \"user_id\", \"quantity\"], \"Product\": [\"product_id\", \"price\"]}, \"rows\": {\"Sales\": [[1, 1, 101, 10], [2, 2, 101, 1], [3, 3, 102, 3], [4, 3, 102, 2], [5, 2, 103, 3]], \"Product\": [[1, 10], [2, 25], [3, 15]]}}",
|
||||
"categoryTitle": "Database",
|
||||
"contributors": [],
|
||||
"topicTags": [],
|
||||
"companyTagStats": null,
|
||||
"codeSnippets": null,
|
||||
"stats": "{\"totalAccepted\": \"337\", \"totalSubmission\": \"408\", \"totalAcceptedRaw\": 337, \"totalSubmissionRaw\": 408, \"acRate\": \"82.6%\"}",
|
||||
"hints": [],
|
||||
"solution": null,
|
||||
"status": null,
|
||||
"sampleTestCase": "{\"headers\": {\"Sales\": [\"sale_id\", \"product_id\", \"user_id\", \"quantity\"], \"Product\": [\"product_id\", \"price\"]}, \"rows\": {\"Sales\": [[1, 1, 101, 10], [2, 2, 101, 1], [3, 3, 102, 3], [4, 3, 102, 2], [5, 2, 103, 3]], \"Product\": [[1, 10], [2, 25], [3, 15]]}}",
|
||||
"metaData": "{\n \"mysql\": [\n \"Create table If Not Exists Sales (sale_id int, product_id int, user_id int, quantity int)\",\n \"Create table If Not Exists Product (product_id int, price int)\"\n ],\n \"mssql\": [\n \"Create table Sales (sale_id int, product_id int, user_id int, quantity int)\",\n \"Create table Product (product_id int, price int)\"\n ],\n \"oraclesql\": [\n \"Create table Sales (sale_id int, product_id int, user_id int, quantity int)\",\n \"Create table Product (product_id int, price int)\"\n ],\n \"database\": true\n}",
|
||||
"judgerAvailable": true,
|
||||
"judgeType": "large",
|
||||
"mysqlSchemas": [
|
||||
"Create table If Not Exists Sales (sale_id int, product_id int, user_id int, quantity int)",
|
||||
"Create table If Not Exists Product (product_id int, price int)",
|
||||
"Truncate table Sales",
|
||||
"insert into Sales (sale_id, product_id, user_id, quantity) values ('1', '1', '101', '10')",
|
||||
"insert into Sales (sale_id, product_id, user_id, quantity) values ('2', '2', '101', '1')",
|
||||
"insert into Sales (sale_id, product_id, user_id, quantity) values ('3', '3', '102', '3')",
|
||||
"insert into Sales (sale_id, product_id, user_id, quantity) values ('4', '3', '102', '2')",
|
||||
"insert into Sales (sale_id, product_id, user_id, quantity) values ('5', '2', '103', '3')",
|
||||
"Truncate table Product",
|
||||
"insert into Product (product_id, price) values ('1', '10')",
|
||||
"insert into Product (product_id, price) values ('2', '25')",
|
||||
"insert into Product (product_id, price) values ('3', '15')"
|
||||
],
|
||||
"enableRunCode": true,
|
||||
"enableTestMode": false,
|
||||
"enableDebugger": false,
|
||||
"envInfo": "{\"mysql\": [\"MySQL\", \"<p><code>MySQL 8.0</code>.</p>\"], \"mssql\": [\"MS SQL Server\", \"<p><code>mssql server 2019</code>.</p>\"], \"oraclesql\": [\"Oracle\", \"<p><code>Oracle Sql 11.2</code>.</p>\"]}",
|
||||
"libraryUrl": null,
|
||||
"adminUrl": null,
|
||||
"challengeQuestion": null,
|
||||
"__typename": "QuestionNode"
|
||||
}
|
||||
}
|
||||
}
|
46
leetcode/originData/[no content]valid-palindrome-iv.json
Normal file
46
leetcode/originData/[no content]valid-palindrome-iv.json
Normal file
File diff suppressed because one or more lines are too long
189
leetcode/originData/array-partition.json
Normal file
189
leetcode/originData/array-partition.json
Normal file
File diff suppressed because one or more lines are too long
156
leetcode/originData/count-the-number-of-ideal-arrays.json
Normal file
156
leetcode/originData/count-the-number-of-ideal-arrays.json
Normal file
File diff suppressed because one or more lines are too long
169
leetcode/originData/decode-the-message.json
Normal file
169
leetcode/originData/decode-the-message.json
Normal file
File diff suppressed because one or more lines are too long
155
leetcode/originData/evaluate-boolean-binary-tree.json
Normal file
155
leetcode/originData/evaluate-boolean-binary-tree.json
Normal file
File diff suppressed because one or more lines are too long
155
leetcode/originData/minimum-amount-of-time-to-fill-cups.json
Normal file
155
leetcode/originData/minimum-amount-of-time-to-fill-cups.json
Normal file
File diff suppressed because one or more lines are too long
156
leetcode/originData/minimum-sum-of-squared-difference.json
Normal file
156
leetcode/originData/minimum-sum-of-squared-difference.json
Normal file
File diff suppressed because one or more lines are too long
155
leetcode/originData/move-pieces-to-obtain-a-string.json
Normal file
155
leetcode/originData/move-pieces-to-obtain-a-string.json
Normal file
File diff suppressed because one or more lines are too long
204
leetcode/originData/number-of-increasing-paths-in-a-grid.json
Normal file
204
leetcode/originData/number-of-increasing-paths-in-a-grid.json
Normal file
File diff suppressed because one or more lines are too long
175
leetcode/originData/number-of-people-aware-of-a-secret.json
Normal file
175
leetcode/originData/number-of-people-aware-of-a-secret.json
Normal file
File diff suppressed because one or more lines are too long
155
leetcode/originData/smallest-number-in-infinite-set.json
Normal file
155
leetcode/originData/smallest-number-in-infinite-set.json
Normal file
File diff suppressed because one or more lines are too long
181
leetcode/originData/spiral-matrix-iv.json
Normal file
181
leetcode/originData/spiral-matrix-iv.json
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
155
leetcode/originData/the-latest-time-to-catch-a-bus.json
Normal file
155
leetcode/originData/the-latest-time-to-catch-a-bus.json
Normal file
File diff suppressed because one or more lines are too long
30
leetcode/problem/array-partition.html
Normal file
30
leetcode/problem/array-partition.html
Normal file
@ -0,0 +1,30 @@
|
||||
<p>Given an integer array <code>nums</code> of <code>2n</code> integers, group these integers into <code>n</code> pairs <code>(a<sub>1</sub>, b<sub>1</sub>), (a<sub>2</sub>, b<sub>2</sub>), ..., (a<sub>n</sub>, b<sub>n</sub>)</code> such that the sum of <code>min(a<sub>i</sub>, b<sub>i</sub>)</code> for all <code>i</code> is <strong>maximized</strong>. Return<em> the maximized sum</em>.</p>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Example 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> nums = [1,4,3,2]
|
||||
<strong>Output:</strong> 4
|
||||
<strong>Explanation:</strong> All possible pairings (ignoring the ordering of elements) are:
|
||||
1. (1, 4), (2, 3) -> min(1, 4) + min(2, 3) = 1 + 2 = 3
|
||||
2. (1, 3), (2, 4) -> min(1, 3) + min(2, 4) = 1 + 2 = 3
|
||||
3. (1, 2), (3, 4) -> min(1, 2) + min(3, 4) = 1 + 3 = 4
|
||||
So the maximum possible sum is 4.</pre>
|
||||
|
||||
<p><strong>Example 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> nums = [6,2,6,5,1,2]
|
||||
<strong>Output:</strong> 9
|
||||
<strong>Explanation:</strong> The optimal pairing is (2, 1), (2, 5), (6, 6). min(2, 1) + min(2, 5) + min(6, 6) = 1 + 2 + 6 = 9.
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Constraints:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= n <= 10<sup>4</sup></code></li>
|
||||
<li><code>nums.length == 2 * n</code></li>
|
||||
<li><code>-10<sup>4</sup> <= nums[i] <= 10<sup>4</sup></code></li>
|
||||
</ul>
|
48
leetcode/problem/count-the-number-of-ideal-arrays.html
Normal file
48
leetcode/problem/count-the-number-of-ideal-arrays.html
Normal file
@ -0,0 +1,48 @@
|
||||
<p>You are given two integers <code>n</code> and <code>maxValue</code>, which are used to describe an <strong>ideal</strong> array.</p>
|
||||
|
||||
<p>A <strong>0-indexed</strong> integer array <code>arr</code> of length <code>n</code> is considered <strong>ideal</strong> if the following conditions hold:</p>
|
||||
|
||||
<ul>
|
||||
<li>Every <code>arr[i]</code> is a value from <code>1</code> to <code>maxValue</code>, for <code>0 <= i < n</code>.</li>
|
||||
<li>Every <code>arr[i]</code> is divisible by <code>arr[i - 1]</code>, for <code>0 < i < n</code>.</li>
|
||||
</ul>
|
||||
|
||||
<p>Return <em>the number of <strong>distinct</strong> ideal arrays of length </em><code>n</code>. Since the answer may be very large, return it modulo <code>10<sup>9</sup> + 7</code>.</p>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Example 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> n = 2, maxValue = 5
|
||||
<strong>Output:</strong> 10
|
||||
<strong>Explanation:</strong> The following are the possible ideal arrays:
|
||||
- Arrays starting with the value 1 (5 arrays): [1,1], [1,2], [1,3], [1,4], [1,5]
|
||||
- Arrays starting with the value 2 (2 arrays): [2,2], [2,4]
|
||||
- Arrays starting with the value 3 (1 array): [3,3]
|
||||
- Arrays starting with the value 4 (1 array): [4,4]
|
||||
- Arrays starting with the value 5 (1 array): [5,5]
|
||||
There are a total of 5 + 2 + 1 + 1 + 1 = 10 distinct ideal arrays.
|
||||
</pre>
|
||||
|
||||
<p><strong>Example 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> n = 5, maxValue = 3
|
||||
<strong>Output:</strong> 11
|
||||
<strong>Explanation:</strong> The following are the possible ideal arrays:
|
||||
- Arrays starting with the value 1 (9 arrays):
|
||||
- With no other distinct values (1 array): [1,1,1,1,1]
|
||||
- With 2<sup>nd</sup> distinct value 2 (4 arrays): [1,1,1,1,2], [1,1,1,2,2], [1,1,2,2,2], [1,2,2,2,2]
|
||||
- With 2<sup>nd</sup> distinct value 3 (4 arrays): [1,1,1,1,3], [1,1,1,3,3], [1,1,3,3,3], [1,3,3,3,3]
|
||||
- Arrays starting with the value 2 (1 array): [2,2,2,2,2]
|
||||
- Arrays starting with the value 3 (1 array): [3,3,3,3,3]
|
||||
There are a total of 9 + 1 + 1 = 11 distinct ideal arrays.
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Constraints:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>2 <= n <= 10<sup>4</sup></code></li>
|
||||
<li><code>1 <= maxValue <= 10<sup>4</sup></code></li>
|
||||
</ul>
|
44
leetcode/problem/decode-the-message.html
Normal file
44
leetcode/problem/decode-the-message.html
Normal file
@ -0,0 +1,44 @@
|
||||
<p>You are given the strings <code>key</code> and <code>message</code>, which represent a cipher key and a secret message, respectively. The steps to decode <code>message</code> are as follows:</p>
|
||||
|
||||
<ol>
|
||||
<li>Use the <strong>first</strong> appearance of all 26 lowercase English letters in <code>key</code> as the <strong>order</strong> of the substitution table.</li>
|
||||
<li>Align the substitution table with the regular English alphabet.</li>
|
||||
<li>Each letter in <code>message</code> is then <strong>substituted</strong> using the table.</li>
|
||||
<li>Spaces <code>' '</code> are transformed to themselves.</li>
|
||||
</ol>
|
||||
|
||||
<ul>
|
||||
<li>For example, given <code>key = "<u><strong>hap</strong></u>p<u><strong>y</strong></u> <u><strong>bo</strong></u>y"</code> (actual key would have <strong>at least one</strong> instance of each letter in the alphabet), we have the partial substitution table of (<code>'h' -> 'a'</code>, <code>'a' -> 'b'</code>, <code>'p' -> 'c'</code>, <code>'y' -> 'd'</code>, <code>'b' -> 'e'</code>, <code>'o' -> 'f'</code>).</li>
|
||||
</ul>
|
||||
|
||||
<p>Return <em>the decoded message</em>.</p>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Example 1:</strong></p>
|
||||
<img alt="" src="https://assets.leetcode.com/uploads/2022/05/08/ex1new4.jpg" style="width: 752px; height: 150px;" />
|
||||
<pre>
|
||||
<strong>Input:</strong> key = "the quick brown fox jumps over the lazy dog", message = "vkbs bs t suepuv"
|
||||
<strong>Output:</strong> "this is a secret"
|
||||
<strong>Explanation:</strong> The diagram above shows the substitution table.
|
||||
It is obtained by taking the first appearance of each letter in "<u><strong>the</strong></u> <u><strong>quick</strong></u> <u><strong>brown</strong></u> <u><strong>f</strong></u>o<u><strong>x</strong></u> <u><strong>j</strong></u>u<u><strong>mps</strong></u> o<u><strong>v</strong></u>er the <u><strong>lazy</strong></u> <u><strong>d</strong></u>o<u><strong>g</strong></u>".
|
||||
</pre>
|
||||
|
||||
<p><strong>Example 2:</strong></p>
|
||||
<img alt="" src="https://assets.leetcode.com/uploads/2022/05/08/ex2new.jpg" style="width: 754px; height: 150px;" />
|
||||
<pre>
|
||||
<strong>Input:</strong> key = "eljuxhpwnyrdgtqkviszcfmabo", message = "zwx hnfx lqantp mnoeius ycgk vcnjrdb"
|
||||
<strong>Output:</strong> "the five boxing wizards jump quickly"
|
||||
<strong>Explanation:</strong> The diagram above shows the substitution table.
|
||||
It is obtained by taking the first appearance of each letter in "<u><strong>eljuxhpwnyrdgtqkviszcfmabo</strong></u>".
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Constraints:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>26 <= key.length <= 2000</code></li>
|
||||
<li><code>key</code> consists of lowercase English letters and <code>' '</code>.</li>
|
||||
<li><code>key</code> contains every letter in the English alphabet (<code>'a'</code> to <code>'z'</code>) <strong>at least once</strong>.</li>
|
||||
<li><code>1 <= message.length <= 2000</code></li>
|
||||
<li><code>message</code> consists of lowercase English letters and <code>' '</code>.</li>
|
||||
</ul>
|
49
leetcode/problem/evaluate-boolean-binary-tree.html
Normal file
49
leetcode/problem/evaluate-boolean-binary-tree.html
Normal file
@ -0,0 +1,49 @@
|
||||
<p>You are given the <code>root</code> of a <strong>full binary tree</strong> with the following properties:</p>
|
||||
|
||||
<ul>
|
||||
<li><strong>Leaf nodes</strong> have either the value <code>0</code> or <code>1</code>, where <code>0</code> represents <code>False</code> and <code>1</code> represents <code>True</code>.</li>
|
||||
<li><strong>Non-leaf nodes</strong> have either the value <code>2</code> or <code>3</code>, where <code>2</code> represents the boolean <code>OR</code> and <code>3</code> represents the boolean <code>AND</code>.</li>
|
||||
</ul>
|
||||
|
||||
<p>The <strong>evaluation</strong> of a node is as follows:</p>
|
||||
|
||||
<ul>
|
||||
<li>If the node is a leaf node, the evaluation is the <strong>value</strong> of the node, i.e. <code>True</code> or <code>False</code>.</li>
|
||||
<li>Otherwise, <strong>evaluate</strong> the node's two children and <strong>apply</strong> the boolean operation of its value with the children's evaluations.</li>
|
||||
</ul>
|
||||
|
||||
<p>Return<em> the boolean result of <strong>evaluating</strong> the </em><code>root</code><em> node.</em></p>
|
||||
|
||||
<p>A <strong>full binary tree</strong> is a binary tree where each node has either <code>0</code> or <code>2</code> children.</p>
|
||||
|
||||
<p>A <strong>leaf node</strong> is a node that has zero children.</p>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Example 1:</strong></p>
|
||||
<img alt="" src="https://assets.leetcode.com/uploads/2022/05/16/example1drawio1.png" style="width: 700px; height: 252px;" />
|
||||
<pre>
|
||||
<strong>Input:</strong> root = [2,1,3,null,null,0,1]
|
||||
<strong>Output:</strong> true
|
||||
<strong>Explanation:</strong> The above diagram illustrates the evaluation process.
|
||||
The AND node evaluates to False AND True = False.
|
||||
The OR node evaluates to True OR False = True.
|
||||
The root node evaluates to True, so we return true.</pre>
|
||||
|
||||
<p><strong>Example 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> root = [0]
|
||||
<strong>Output:</strong> false
|
||||
<strong>Explanation:</strong> The root node is a leaf node and it evaluates to false, so we return false.
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Constraints:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li>The number of nodes in the tree is in the range <code>[1, 1000]</code>.</li>
|
||||
<li><code>0 <= Node.val <= 3</code></li>
|
||||
<li>Every node has either <code>0</code> or <code>2</code> children.</li>
|
||||
<li>Leaf nodes have a value of <code>0</code> or <code>1</code>.</li>
|
||||
<li>Non-leaf nodes have a value of <code>2</code> or <code>3</code>.</li>
|
||||
</ul>
|
48
leetcode/problem/minimum-amount-of-time-to-fill-cups.html
Normal file
48
leetcode/problem/minimum-amount-of-time-to-fill-cups.html
Normal file
@ -0,0 +1,48 @@
|
||||
<p>You have a water dispenser that can dispense cold, warm, and hot water. Every second, you can either fill up <code>2</code> cups with <strong>different</strong> types of water, or <code>1</code> cup of any type of water.</p>
|
||||
|
||||
<p>You are given a <strong>0-indexed</strong> integer array <code>amount</code> of length <code>3</code> where <code>amount[0]</code>, <code>amount[1]</code>, and <code>amount[2]</code> denote the number of cold, warm, and hot water cups you need to fill respectively. Return <em>the <strong>minimum</strong> number of seconds needed to fill up all the cups</em>.</p>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Example 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> amount = [1,4,2]
|
||||
<strong>Output:</strong> 4
|
||||
<strong>Explanation:</strong> One way to fill up the cups is:
|
||||
Second 1: Fill up a cold cup and a warm cup.
|
||||
Second 2: Fill up a warm cup and a hot cup.
|
||||
Second 3: Fill up a warm cup and a hot cup.
|
||||
Second 4: Fill up a warm cup.
|
||||
It can be proven that 4 is the minimum number of seconds needed.
|
||||
</pre>
|
||||
|
||||
<p><strong>Example 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> amount = [5,4,4]
|
||||
<strong>Output:</strong> 7
|
||||
<strong>Explanation:</strong> One way to fill up the cups is:
|
||||
Second 1: Fill up a cold cup, and a hot cup.
|
||||
Second 2: Fill up a cold cup, and a warm cup.
|
||||
Second 3: Fill up a cold cup, and a warm cup.
|
||||
Second 4: Fill up a warm cup, and a hot cup.
|
||||
Second 5: Fill up a cold cup, and a hot cup.
|
||||
Second 6: Fill up a cold cup, and a warm cup.
|
||||
Second 7: Fill up a hot cup.
|
||||
</pre>
|
||||
|
||||
<p><strong>Example 3:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> amount = [5,0,0]
|
||||
<strong>Output:</strong> 5
|
||||
<strong>Explanation:</strong> Every second, we fill up a cold cup.
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Constraints:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>amount.length == 3</code></li>
|
||||
<li><code>0 <= amount[i] <= 100</code></li>
|
||||
</ul>
|
41
leetcode/problem/minimum-sum-of-squared-difference.html
Normal file
41
leetcode/problem/minimum-sum-of-squared-difference.html
Normal file
@ -0,0 +1,41 @@
|
||||
<p>You are given two positive <strong>0-indexed</strong> integer arrays <code>nums1</code> and <code>nums2</code>, both of length <code>n</code>.</p>
|
||||
|
||||
<p>The <strong>sum of squared difference</strong> of arrays <code>nums1</code> and <code>nums2</code> is defined as the <strong>sum</strong> of <code>(nums1[i] - nums2[i])<sup>2</sup></code> for each <code>0 <= i < n</code>.</p>
|
||||
|
||||
<p>You are also given two positive integers <code>k1</code> and <code>k2</code>. You can modify any of the elements of <code>nums1</code> by <code>+1</code> or <code>-1</code> at most <code>k1</code> times. Similarly, you can modify any of the elements of <code>nums2</code> by <code>+1</code> or <code>-1</code> at most <code>k2</code> times.</p>
|
||||
|
||||
<p>Return <em>the minimum <strong>sum of squared difference</strong> after modifying array </em><code>nums1</code><em> at most </em><code>k1</code><em> times and modifying array </em><code>nums2</code><em> at most </em><code>k2</code><em> times</em>.</p>
|
||||
|
||||
<p><strong>Note</strong>: You are allowed to modify the array elements to become <strong>negative</strong> integers.</p>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Example 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> nums1 = [1,2,3,4], nums2 = [2,10,20,19], k1 = 0, k2 = 0
|
||||
<strong>Output:</strong> 579
|
||||
<strong>Explanation:</strong> The elements in nums1 and nums2 cannot be modified because k1 = 0 and k2 = 0.
|
||||
The sum of square difference will be: (1 - 2)<sup>2 </sup>+ (2 - 10)<sup>2 </sup>+ (3 - 20)<sup>2 </sup>+ (4 - 19)<sup>2</sup> = 579.
|
||||
</pre>
|
||||
|
||||
<p><strong>Example 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> nums1 = [1,4,10,12], nums2 = [5,8,6,9], k1 = 1, k2 = 1
|
||||
<strong>Output:</strong> 43
|
||||
<strong>Explanation:</strong> One way to obtain the minimum sum of square difference is:
|
||||
- Increase nums1[0] once.
|
||||
- Increase nums2[2] once.
|
||||
The minimum of the sum of square difference will be:
|
||||
(2 - 5)<sup>2 </sup>+ (4 - 8)<sup>2 </sup>+ (10 - 7)<sup>2 </sup>+ (12 - 9)<sup>2</sup> = 43.
|
||||
Note that, there are other ways to obtain the minimum of the sum of square difference, but there is no way to obtain a sum smaller than 43.</pre>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Constraints:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>n == nums1.length == nums2.length</code></li>
|
||||
<li><code>1 <= n <= 10<sup>5</sup></code></li>
|
||||
<li><code>0 <= nums1[i], nums2[i] <= 10<sup>5</sup></code></li>
|
||||
<li><code>0 <= k1, k2 <= 10<sup>9</sup></code></li>
|
||||
</ul>
|
46
leetcode/problem/move-pieces-to-obtain-a-string.html
Normal file
46
leetcode/problem/move-pieces-to-obtain-a-string.html
Normal file
@ -0,0 +1,46 @@
|
||||
<p>You are given two strings <code>start</code> and <code>target</code>, both of length <code>n</code>. Each string consists <strong>only</strong> of the characters <code>'L'</code>, <code>'R'</code>, and <code>'_'</code> where:</p>
|
||||
|
||||
<ul>
|
||||
<li>The characters <code>'L'</code> and <code>'R'</code> represent pieces, where a piece <code>'L'</code> can move to the <strong>left</strong> only if there is a <strong>blank</strong> space directly to its left, and a piece <code>'R'</code> can move to the <strong>right</strong> only if there is a <strong>blank</strong> space directly to its right.</li>
|
||||
<li>The character <code>'_'</code> represents a blank space that can be occupied by <strong>any</strong> of the <code>'L'</code> or <code>'R'</code> pieces.</li>
|
||||
</ul>
|
||||
|
||||
<p>Return <code>true</code> <em>if it is possible to obtain the string</em> <code>target</code><em> by moving the pieces of the string </em><code>start</code><em> <strong>any</strong> number of times</em>. Otherwise, return <code>false</code>.</p>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Example 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> start = "_L__R__R_", target = "L______RR"
|
||||
<strong>Output:</strong> true
|
||||
<strong>Explanation:</strong> We can obtain the string target from start by doing the following moves:
|
||||
- Move the first piece one step to the left, start becomes equal to "<strong>L</strong>___R__R_".
|
||||
- Move the last piece one step to the right, start becomes equal to "L___R___<strong>R</strong>".
|
||||
- Move the second piece three steps to the right, start becomes equal to "L______<strong>R</strong>R".
|
||||
Since it is possible to get the string target from start, we return true.
|
||||
</pre>
|
||||
|
||||
<p><strong>Example 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> start = "R_L_", target = "__LR"
|
||||
<strong>Output:</strong> false
|
||||
<strong>Explanation:</strong> The 'R' piece in the string start can move one step to the right to obtain "_<strong>R</strong>L_".
|
||||
After that, no pieces can move anymore, so it is impossible to obtain the string target from start.
|
||||
</pre>
|
||||
|
||||
<p><strong>Example 3:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> start = "_R", target = "R_"
|
||||
<strong>Output:</strong> false
|
||||
<strong>Explanation:</strong> The piece in the string start can move only to the right, so it is impossible to obtain the string target from start.</pre>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Constraints:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>n == start.length == target.length</code></li>
|
||||
<li><code>1 <= n <= 10<sup>5</sup></code></li>
|
||||
<li><code>start</code> and <code>target</code> consist of the characters <code>'L'</code>, <code>'R'</code>, and <code>'_'</code>.</li>
|
||||
</ul>
|
40
leetcode/problem/number-of-increasing-paths-in-a-grid.html
Normal file
40
leetcode/problem/number-of-increasing-paths-in-a-grid.html
Normal file
@ -0,0 +1,40 @@
|
||||
<p>You are given an <code>m x n</code> integer matrix <code>grid</code>, where you can move from a cell to any adjacent cell in all <code>4</code> directions.</p>
|
||||
|
||||
<p>Return <em>the number of <strong>strictly</strong> <strong>increasing</strong> paths in the grid such that you can start from <strong>any</strong> cell and end at <strong>any</strong> cell. </em>Since the answer may be very large, return it <strong>modulo</strong> <code>10<sup>9</sup> + 7</code>.</p>
|
||||
|
||||
<p>Two paths are considered different if they do not have exactly the same sequence of visited cells.</p>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Example 1:</strong></p>
|
||||
<img alt="" src="https://assets.leetcode.com/uploads/2022/05/10/griddrawio-4.png" style="width: 181px; height: 121px;" />
|
||||
<pre>
|
||||
<strong>Input:</strong> grid = [[1,1],[3,4]]
|
||||
<strong>Output:</strong> 8
|
||||
<strong>Explanation:</strong> The strictly increasing paths are:
|
||||
- Paths with length 1: [1], [1], [3], [4].
|
||||
- Paths with length 2: [1 -> 3], [1 -> 4], [3 -> 4].
|
||||
- Paths with length 3: [1 -> 3 -> 4].
|
||||
The total number of paths is 4 + 3 + 1 = 8.
|
||||
</pre>
|
||||
|
||||
<p><strong>Example 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> grid = [[1],[2]]
|
||||
<strong>Output:</strong> 3
|
||||
<strong>Explanation:</strong> The strictly increasing paths are:
|
||||
- Paths with length 1: [1], [2].
|
||||
- Paths with length 2: [1 -> 2].
|
||||
The total number of paths is 2 + 1 = 3.
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Constraints:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>m == grid.length</code></li>
|
||||
<li><code>n == grid[i].length</code></li>
|
||||
<li><code>1 <= m, n <= 1000</code></li>
|
||||
<li><code>1 <= m * n <= 10<sup>5</sup></code></li>
|
||||
<li><code>1 <= grid[i][j] <= 10<sup>5</sup></code></li>
|
||||
</ul>
|
40
leetcode/problem/number-of-people-aware-of-a-secret.html
Normal file
40
leetcode/problem/number-of-people-aware-of-a-secret.html
Normal file
@ -0,0 +1,40 @@
|
||||
<p>On day <code>1</code>, one person discovers a secret.</p>
|
||||
|
||||
<p>You are given an integer <code>delay</code>, which means that each person will <strong>share</strong> the secret with a new person <strong>every day</strong>, starting from <code>delay</code> days after discovering the secret. You are also given an integer <code>forget</code>, which means that each person will <strong>forget</strong> the secret <code>forget</code> days after discovering it. A person <strong>cannot</strong> share the secret on the same day they forgot it, or on any day afterwards.</p>
|
||||
|
||||
<p>Given an integer <code>n</code>, return<em> the number of people who know the secret at the end of day </em><code>n</code>. Since the answer may be very large, return it <strong>modulo</strong> <code>10<sup>9</sup> + 7</code>.</p>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Example 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> n = 6, delay = 2, forget = 4
|
||||
<strong>Output:</strong> 5
|
||||
<strong>Explanation:</strong>
|
||||
Day 1: Suppose the first person is named A. (1 person)
|
||||
Day 2: A is the only person who knows the secret. (1 person)
|
||||
Day 3: A shares the secret with a new person, B. (2 people)
|
||||
Day 4: A shares the secret with a new person, C. (3 people)
|
||||
Day 5: A forgets the secret, and B shares the secret with a new person, D. (3 people)
|
||||
Day 6: B shares the secret with E, and C shares the secret with F. (5 people)
|
||||
</pre>
|
||||
|
||||
<p><strong>Example 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> n = 4, delay = 1, forget = 3
|
||||
<strong>Output:</strong> 6
|
||||
<strong>Explanation:</strong>
|
||||
Day 1: The first person is named A. (1 person)
|
||||
Day 2: A shares the secret with B. (2 people)
|
||||
Day 3: A and B share the secret with 2 new people, C and D. (4 people)
|
||||
Day 4: A forgets the secret. B, C, and D share the secret with 3 new people. (6 people)
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Constraints:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>2 <= n <= 1000</code></li>
|
||||
<li><code>1 <= delay < forget <= n</code></li>
|
||||
</ul>
|
40
leetcode/problem/smallest-number-in-infinite-set.html
Normal file
40
leetcode/problem/smallest-number-in-infinite-set.html
Normal file
@ -0,0 +1,40 @@
|
||||
<p>You have a set which contains all positive integers <code>[1, 2, 3, 4, 5, ...]</code>.</p>
|
||||
|
||||
<p>Implement the <code>SmallestInfiniteSet</code> class:</p>
|
||||
|
||||
<ul>
|
||||
<li><code>SmallestInfiniteSet()</code> Initializes the <strong>SmallestInfiniteSet</strong> object to contain <strong>all</strong> positive integers.</li>
|
||||
<li><code>int popSmallest()</code> <strong>Removes</strong> and returns the smallest integer contained in the infinite set.</li>
|
||||
<li><code>void addBack(int num)</code> <strong>Adds</strong> a positive integer <code>num</code> back into the infinite set, if it is <strong>not</strong> already in the infinite set.</li>
|
||||
</ul>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Example 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input</strong>
|
||||
["SmallestInfiniteSet", "addBack", "popSmallest", "popSmallest", "popSmallest", "addBack", "popSmallest", "popSmallest", "popSmallest"]
|
||||
[[], [2], [], [], [], [1], [], [], []]
|
||||
<strong>Output</strong>
|
||||
[null, null, 1, 2, 3, null, 1, 4, 5]
|
||||
|
||||
<strong>Explanation</strong>
|
||||
SmallestInfiniteSet smallestInfiniteSet = new SmallestInfiniteSet();
|
||||
smallestInfiniteSet.addBack(2); // 2 is already in the set, so no change is made.
|
||||
smallestInfiniteSet.popSmallest(); // return 1, since 1 is the smallest number, and remove it from the set.
|
||||
smallestInfiniteSet.popSmallest(); // return 2, and remove it from the set.
|
||||
smallestInfiniteSet.popSmallest(); // return 3, and remove it from the set.
|
||||
smallestInfiniteSet.addBack(1); // 1 is added back to the set.
|
||||
smallestInfiniteSet.popSmallest(); // return 1, since 1 was added back to the set and
|
||||
// is the smallest number, and remove it from the set.
|
||||
smallestInfiniteSet.popSmallest(); // return 4, and remove it from the set.
|
||||
smallestInfiniteSet.popSmallest(); // return 5, and remove it from the set.
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Constraints:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= num <= 1000</code></li>
|
||||
<li>At most <code>1000</code> calls will be made <strong>in total</strong> to <code>popSmallest</code> and <code>addBack</code>.</li>
|
||||
</ul>
|
35
leetcode/problem/spiral-matrix-iv.html
Normal file
35
leetcode/problem/spiral-matrix-iv.html
Normal file
@ -0,0 +1,35 @@
|
||||
<p>You are given two integers <code>m</code> and <code>n</code>, which represent the dimensions of a matrix.</p>
|
||||
|
||||
<p>You are also given the <code>head</code> of a linked list of integers.</p>
|
||||
|
||||
<p>Generate an <code>m x n</code> matrix that contains the integers in the linked list presented in <strong>spiral</strong> order <strong>(clockwise)</strong>, starting from the <strong>top-left</strong> of the matrix. If there are remaining empty spaces, fill them with <code>-1</code>.</p>
|
||||
|
||||
<p>Return <em>the generated matrix</em>.</p>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Example 1:</strong></p>
|
||||
<img alt="" src="https://assets.leetcode.com/uploads/2022/05/09/ex1new.jpg" style="width: 240px; height: 150px;" />
|
||||
<pre>
|
||||
<strong>Input:</strong> m = 3, n = 5, head = [3,0,2,6,8,1,7,9,4,2,5,5,0]
|
||||
<strong>Output:</strong> [[3,0,2,6,8],[5,0,-1,-1,1],[5,2,4,9,7]]
|
||||
<strong>Explanation:</strong> The diagram above shows how the values are printed in the matrix.
|
||||
Note that the remaining spaces in the matrix are filled with -1.
|
||||
</pre>
|
||||
|
||||
<p><strong>Example 2:</strong></p>
|
||||
<img alt="" src="https://assets.leetcode.com/uploads/2022/05/11/ex2.jpg" style="width: 221px; height: 60px;" />
|
||||
<pre>
|
||||
<strong>Input:</strong> m = 1, n = 4, head = [0,1,2]
|
||||
<strong>Output:</strong> [[0,1,2,-1]]
|
||||
<strong>Explanation:</strong> The diagram above shows how the values are printed from left to right in the matrix.
|
||||
The last space in the matrix is set to -1.</pre>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Constraints:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= m, n <= 10<sup>5</sup></code></li>
|
||||
<li><code>1 <= m * n <= 10<sup>5</sup></code></li>
|
||||
<li>The number of nodes in the list is in the range <code>[1, m * n]</code>.</li>
|
||||
<li><code>0 <= Node.val <= 1000</code></li>
|
||||
</ul>
|
@ -0,0 +1,35 @@
|
||||
<p>You are given an integer array <code>nums</code> and an integer <code>threshold</code>.</p>
|
||||
|
||||
<p>Find any subarray of <code>nums</code> of length <code>k</code> such that <strong>every</strong> element in the subarray is <strong>greater</strong> than <code>threshold / k</code>.</p>
|
||||
|
||||
<p>Return<em> the <strong>size</strong> of <strong>any</strong> such subarray</em>. If there is no such subarray, return <code>-1</code>.</p>
|
||||
|
||||
<p>A <strong>subarray</strong> is a contiguous non-empty sequence of elements within an array.</p>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Example 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> nums = [1,3,4,3,1], threshold = 6
|
||||
<strong>Output:</strong> 3
|
||||
<strong>Explanation:</strong> The subarray [3,4,3] has a size of 3, and every element is greater than 6 / 3 = 2.
|
||||
Note that this is the only valid subarray.
|
||||
</pre>
|
||||
|
||||
<p><strong>Example 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> nums = [6,5,6,5,8], threshold = 7
|
||||
<strong>Output:</strong> 1
|
||||
<strong>Explanation:</strong> The subarray [8] has a size of 1, and 8 > 7 / 1 = 7. So 1 is returned.
|
||||
Note that the subarray [6,5] has a size of 2, and every element is greater than 7 / 2 = 3.5.
|
||||
Similarly, the subarrays [6,5,6], [6,5,6,5], [6,5,6,5,8] also satisfy the given conditions.
|
||||
Therefore, 2, 3, 4, or 5 may also be returned.</pre>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Constraints:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= nums.length <= 10<sup>5</sup></code></li>
|
||||
<li><code>1 <= nums[i], threshold <= 10<sup>9</sup></code></li>
|
||||
</ul>
|
43
leetcode/problem/the-latest-time-to-catch-a-bus.html
Normal file
43
leetcode/problem/the-latest-time-to-catch-a-bus.html
Normal file
@ -0,0 +1,43 @@
|
||||
<p>You are given a <strong>0-indexed</strong> integer array <code>buses</code> of length <code>n</code>, where <code>buses[i]</code> represents the departure time of the <code>i<sup>th</sup></code> bus. You are also given a <strong>0-indexed</strong> integer array <code>passengers</code> of length <code>m</code>, where <code>passengers[j]</code> represents the arrival time of the <code>j<sup>th</sup></code> passenger. All bus departure times are unique. All passenger arrival times are unique.</p>
|
||||
|
||||
<p>You are given an integer <code>capacity</code>, which represents the <strong>maximum</strong> number of passengers that can get on each bus.</p>
|
||||
|
||||
<p>The passengers will get on the next available bus. You can get on a bus that will depart at <code>x</code> minutes if you arrive at <code>y</code> minutes where <code>y <= x</code>, and the bus is not full. Passengers with the <strong>earliest</strong> arrival times get on the bus first.</p>
|
||||
|
||||
<p>Return <em>the latest time you may arrive at the bus station to catch a bus</em>. You <strong>cannot</strong> arrive at the same time as another passenger.</p>
|
||||
|
||||
<p><strong>Note: </strong>The arrays <code>buses</code> and <code>passengers</code> are not necessarily sorted.</p>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Example 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> buses = [10,20], passengers = [2,17,18,19], capacity = 2
|
||||
<strong>Output:</strong> 16
|
||||
<strong>Explanation:</strong>
|
||||
The 1<sup>st</sup> bus departs with the 1<sup>st</sup> passenger.
|
||||
The 2<sup>nd</sup> bus departs with you and the 2<sup>nd</sup> passenger.
|
||||
Note that you must not arrive at the same time as the passengers, which is why you must arrive before the 2<sup>nd</sup><sup> </sup>passenger to catch the bus.</pre>
|
||||
|
||||
<p><strong>Example 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> buses = [20,30,10], passengers = [19,13,26,4,25,11,21], capacity = 2
|
||||
<strong>Output:</strong> 20
|
||||
<strong>Explanation:</strong>
|
||||
The 1<sup>st</sup> bus departs with the 4<sup>th</sup> passenger.
|
||||
The 2<sup>nd</sup> bus departs with the 6<sup>th</sup> and 2<sup>nd</sup><sup> </sup>passengers.
|
||||
The 3<sup>rd</sup> bus departs with the 1<sup>s</sup><sup>t</sup> passenger and you.
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Constraints:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>n == buses.length</code></li>
|
||||
<li><code>m == passengers.length</code></li>
|
||||
<li><code>1 <= n, m, capacity <= 10<sup>5</sup></code></li>
|
||||
<li><code>2 <= buses[i], passengers[i] <= 10<sup>9</sup></code></li>
|
||||
<li>Each element in <code>buses</code> is <strong>unique</strong>.</li>
|
||||
<li>Each element in <code>passengers</code> is <strong>unique</strong>.</li>
|
||||
</ul>
|
Loading…
x
Reference in New Issue
Block a user