mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-01-10 10:38:13 +08:00
update
This commit is contained in:
parent
85985929d8
commit
6f2245ab62
@ -1,6 +1,6 @@
|
||||
# 力扣题库(完整版)
|
||||
|
||||
> 最后更新日期: **2022.08.26**
|
||||
> 最后更新日期: **2022.08.29**
|
||||
>
|
||||
> 使用脚本前请务必仔细完整阅读本 `README.md` 文件
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,55 @@
|
||||
{
|
||||
"data": {
|
||||
"question": {
|
||||
"questionId": "2523",
|
||||
"questionFrontendId": "2388",
|
||||
"categoryTitle": "Database",
|
||||
"boundTopicId": 1776356,
|
||||
"title": "Change Null Values in a Table to the Previous Value",
|
||||
"titleSlug": "change-null-values-in-a-table-to-the-previous-value",
|
||||
"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\": \"24\", \"totalSubmission\": \"43\", \"totalAcceptedRaw\": 24, \"totalSubmissionRaw\": 43, \"acRate\": \"55.8%\"}",
|
||||
"hints": [],
|
||||
"solution": null,
|
||||
"status": null,
|
||||
"sampleTestCase": "{\"headers\": {\"CoffeeShop\": [\"id\", \"drink\"]}, \"rows\": {\"CoffeeShop\": [[9, \"Mezcal Margarita\"], [6, null], [7, null], [3, \"Americano\"], [1, \"Daiquiri\"], [2, null]]}}",
|
||||
"metaData": "{\n \"mysql\": [\n \"Create table If Not Exists CoffeeShop (id int, drink varchar(20))\"\n ],\n \"mssql\": [\n \"Create table CoffeeShop (id int, drink varchar(20))\"\n ],\n \"oraclesql\": [\n \"Create table CoffeeShop (id int, drink varchar(20))\"\n ],\n \"database\": true\n}",
|
||||
"judgerAvailable": true,
|
||||
"judgeType": "large",
|
||||
"mysqlSchemas": [
|
||||
"Create table If Not Exists CoffeeShop (id int, drink varchar(20))",
|
||||
"Truncate table CoffeeShop",
|
||||
"insert into CoffeeShop (id, drink) values ('9', 'Mezcal Margarita')",
|
||||
"insert into CoffeeShop (id, drink) values ('6', 'None')",
|
||||
"insert into CoffeeShop (id, drink) values ('7', 'None')",
|
||||
"insert into CoffeeShop (id, drink) values ('3', 'Americano')",
|
||||
"insert into CoffeeShop (id, drink) values ('1', 'Daiquiri')",
|
||||
"insert into CoffeeShop (id, drink) values ('2', 'None')"
|
||||
],
|
||||
"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\": {\"CoffeeShop\": [\"id\", \"drink\"]}, \"rows\": {\"CoffeeShop\": [[9, \"Mezcal Margarita\"], [6, null], [7, null], [3, \"Americano\"], [1, \"Daiquiri\"], [2, null]]}}",
|
||||
"__typename": "QuestionNode"
|
||||
}
|
||||
}
|
||||
}
|
164
leetcode-cn/originData/build-a-matrix-with-conditions.json
Normal file
164
leetcode-cn/originData/build-a-matrix-with-conditions.json
Normal file
File diff suppressed because one or more lines are too long
165
leetcode-cn/originData/longest-subsequence-with-limited-sum.json
Normal file
165
leetcode-cn/originData/longest-subsequence-with-limited-sum.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/removing-stars-from-a-string.json
Normal file
164
leetcode-cn/originData/removing-stars-from-a-string.json
Normal file
File diff suppressed because one or more lines are too long
@ -0,0 +1,48 @@
|
||||
<p>给你一个包含若干星号 <code>*</code> 的字符串 <code>s</code> 。</p>
|
||||
|
||||
<p>在一步操作中,你可以:</p>
|
||||
|
||||
<ul>
|
||||
<li>选中 <code>s</code> 中的一个星号。</li>
|
||||
<li>移除星号 <strong>左侧</strong> 最近的那个 <strong>非星号</strong> 字符,并移除该星号自身。</li>
|
||||
</ul>
|
||||
|
||||
<p>返回移除 <strong>所有</strong> 星号之后的字符串<strong>。</strong></p>
|
||||
|
||||
<p><strong>注意:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li>生成的输入保证总是可以执行题面中描述的操作。</li>
|
||||
<li>可以证明结果字符串是唯一的。</li>
|
||||
</ul>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>s = "leet**cod*e"
|
||||
<strong>输出:</strong>"lecoe"
|
||||
<strong>解释:</strong>从左到右执行移除操作:
|
||||
- 距离第 1 个星号最近的字符是 "lee<em><strong>t</strong></em>**cod*e" 中的 't' ,s 变为 "lee*cod*e" 。
|
||||
- 距离第 2 个星号最近的字符是 "le<em><strong>e</strong></em>*cod*e" 中的 'e' ,s 变为 "lecod*e" 。
|
||||
- 距离第 3 个星号最近的字符是 "leco<em><strong>d</strong></em>*e" 中的 'd' ,s 变为 "lecoe" 。
|
||||
不存在其他星号,返回 "lecoe" 。</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>s = "erase*****"
|
||||
<strong>输出:</strong>""
|
||||
<strong>解释:</strong>整个字符串都会被移除,所以返回空字符串。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= s.length <= 10<sup>5</sup></code></li>
|
||||
<li><code>s</code> 由小写英文字母和星号 <code>*</code> 组成</li>
|
||||
<li><code>s</code> 可以执行上述操作</li>
|
||||
</ul>
|
@ -0,0 +1,36 @@
|
||||
<p>给你一个长度为 <code>n</code> 的整数数组 <code>nums</code> ,和一个长度为 <code>m</code> 的整数数组 <code>queries</code> 。</p>
|
||||
|
||||
<p>返回一个长度为 <code>m</code> 的数组<em> </em><code>answer</code><em> </em>,其中<em> </em><code>answer[i]</code><em> </em>是 <code>nums</code> 中<span style=""> </span>元素之和小于等于 <code>queries[i]</code> 的 <strong>子序列</strong> 的 <strong>最大</strong> 长度<span style=""> </span><span style=""> </span>。</p>
|
||||
|
||||
<p><strong>子序列</strong> 是由一个数组删除某些元素(也可以不删除)但不改变剩余元素顺序得到的一个数组。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>nums = [4,5,2,1], queries = [3,10,21]
|
||||
<strong>输出:</strong>[2,3,4]
|
||||
<strong>解释:</strong>queries 对应的 answer 如下:
|
||||
- 子序列 [2,1] 的和小于或等于 3 。可以证明满足题目要求的子序列的最大长度是 2 ,所以 answer[0] = 2 。
|
||||
- 子序列 [4,5,1] 的和小于或等于 10 。可以证明满足题目要求的子序列的最大长度是 3 ,所以 answer[1] = 3 。
|
||||
- 子序列 [4,5,2,1] 的和小于或等于 21 。可以证明满足题目要求的子序列的最大长度是 4 ,所以 answer[2] = 4 。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>nums = [2,3,4,5], queries = [1]
|
||||
<strong>输出:</strong>[0]
|
||||
<strong>解释:</strong>空子序列是唯一一个满足元素和小于或等于 1 的子序列,所以 answer[0] = 0 。</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>n == nums.length</code></li>
|
||||
<li><code>m == queries.length</code></li>
|
||||
<li><code>1 <= n, m <= 1000</code></li>
|
||||
<li><code>1 <= nums[i], queries[i] <= 10<sup>6</sup></code></li>
|
||||
</ul>
|
@ -0,0 +1,57 @@
|
||||
<p>给你一个下标从 <strong>0</strong> 开始的字符串数组 <code>garbage</code> ,其中 <code>garbage[i]</code> 表示第 <code>i</code> 个房子的垃圾集合。<code>garbage[i]</code> 只包含字符 <code>'M'</code> ,<code>'P'</code> 和 <code>'G'</code> ,但可能包含多个相同字符,每个字符分别表示一单位的金属、纸和玻璃。垃圾车收拾 <strong>一</strong> 单位的任何一种垃圾都需要花费 <code>1</code> 分钟。</p>
|
||||
|
||||
<p>同时给你一个下标从 <strong>0</strong> 开始的整数数组 <code>travel</code> ,其中 <code>travel[i]</code> 是垃圾车从房子 <code>i</code> 行驶到房子 <code>i + 1</code> 需要的分钟数。</p>
|
||||
|
||||
<p>城市里总共有三辆垃圾车,分别收拾三种垃圾。每辆垃圾车都从房子 <code>0</code> 出发,<strong>按顺序</strong> 到达每一栋房子。但它们 <strong>不是必须</strong> 到达所有的房子。</p>
|
||||
|
||||
<p>任何时刻只有 <strong>一辆</strong> 垃圾车处在使用状态。当一辆垃圾车在行驶或者收拾垃圾的时候,另外两辆车 <strong>不能</strong> 做任何事情。</p>
|
||||
|
||||
<p>请你返回收拾完所有垃圾需要花费的 <strong>最少</strong> 总分钟数。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre><b>输入:</b>garbage = ["G","P","GP","GG"], travel = [2,4,3]
|
||||
<b>输出:</b>21
|
||||
<strong>解释:</strong>
|
||||
收拾纸的垃圾车:
|
||||
1. 从房子 0 行驶到房子 1
|
||||
2. 收拾房子 1 的纸垃圾
|
||||
3. 从房子 1 行驶到房子 2
|
||||
4. 收拾房子 2 的纸垃圾
|
||||
收拾纸的垃圾车总共花费 8 分钟收拾完所有的纸垃圾。
|
||||
收拾玻璃的垃圾车:
|
||||
1. 收拾房子 0 的玻璃垃圾
|
||||
2. 从房子 0 行驶到房子 1
|
||||
3. 从房子 1 行驶到房子 2
|
||||
4. 收拾房子 2 的玻璃垃圾
|
||||
5. 从房子 2 行驶到房子 3
|
||||
6. 收拾房子 3 的玻璃垃圾
|
||||
收拾玻璃的垃圾车总共花费 13 分钟收拾完所有的玻璃垃圾。
|
||||
由于没有金属垃圾,收拾金属的垃圾车不需要花费任何时间。
|
||||
所以总共花费 8 + 13 = 21 分钟收拾完所有垃圾。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre><b>输入:</b>garbage = ["MMM","PGM","GP"], travel = [3,10]
|
||||
<b>输出:</b>37
|
||||
<strong>解释:</strong>
|
||||
收拾金属的垃圾车花费 7 分钟收拾完所有的金属垃圾。
|
||||
收拾纸的垃圾车花费 15 分钟收拾完所有的纸垃圾。
|
||||
收拾玻璃的垃圾车花费 15 分钟收拾完所有的玻璃垃圾。
|
||||
总共花费 7 + 15 + 15 = 37 分钟收拾完所有的垃圾。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>2 <= garbage.length <= 10<sup>5</sup></code></li>
|
||||
<li><code>garbage[i]</code> 只包含字母 <code>'M'</code> ,<code>'P'</code> 和 <code>'G'</code> 。</li>
|
||||
<li><code>1 <= garbage[i].length <= 10</code></li>
|
||||
<li><code>travel.length == garbage.length - 1</code></li>
|
||||
<li><code>1 <= travel[i] <= 100</code></li>
|
||||
</ul>
|
@ -0,0 +1,58 @@
|
||||
<p>给你一个 <strong>正</strong> 整数 <code>k</code> ,同时给你:</p>
|
||||
|
||||
<ul>
|
||||
<li>一个大小为 <code>n</code> 的二维整数数组 <code>rowConditions</code> ,其中 <code>rowConditions[i] = [above<sub>i</sub>, below<sub>i</sub>]</code> 和</li>
|
||||
<li>一个大小为 <code>m</code> 的二维整数数组 <code>colConditions</code> ,其中 <code>colConditions[i] = [left<sub>i</sub>, right<sub>i</sub>]</code> 。</li>
|
||||
</ul>
|
||||
|
||||
<p>两个数组里的整数都是 <code>1</code> 到 <code>k</code> 之间的数字。</p>
|
||||
|
||||
<p>你需要构造一个 <code>k x k</code> 的矩阵,<code>1</code> 到 <code>k</code> 每个数字需要 <strong>恰好出现一次</strong> 。剩余的数字都是<b> </b><code>0</code> 。</p>
|
||||
|
||||
<p>矩阵还需要满足以下条件:</p>
|
||||
|
||||
<ul>
|
||||
<li>对于所有 <code>0</code> 到 <code>n - 1</code> 之间的下标 <code>i</code> ,数字 <code>above<sub>i</sub></code> 所在的 <strong>行</strong> 必须在数字 <code>below<sub>i</sub></code> 所在行的上面。</li>
|
||||
<li>对于所有 <code>0</code> 到 <code>m - 1</code> 之间的下标 <code>i</code> ,数字 <code>left<sub>i</sub></code> 所在的 <b>列</b> 必须在数字 <code>right<sub>i</sub></code> 所在列的左边。</li>
|
||||
</ul>
|
||||
|
||||
<p>返回满足上述要求的 <strong>任意</strong> 矩阵。如果不存在答案,返回一个空的矩阵。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<p><img alt="" src="https://assets.leetcode.com/uploads/2022/07/06/gridosdrawio.png" style="width: 211px; height: 211px;"></p>
|
||||
|
||||
<pre><b>输入:</b>k = 3, rowConditions = [[1,2],[3,2]], colConditions = [[2,1],[3,2]]
|
||||
<b>输出:</b>[[3,0,0],[0,0,1],[0,2,0]]
|
||||
<b>解释:</b>上图为一个符合所有条件的矩阵。
|
||||
行要求如下:
|
||||
- 数字 1 在第 <strong>1</strong> 行,数字 2 在第 <strong>2</strong> 行,1 在 2 的上面。
|
||||
- 数字 3 在第 <strong>0</strong> 行,数字 2 在第 <strong>2</strong> 行,3 在 2 的上面。
|
||||
列要求如下:
|
||||
- 数字 2 在第 <strong>1</strong> 列,数字 1 在第 <strong>2</strong> 列,2 在 1 的左边。
|
||||
- 数字 3 在第 <strong>0</strong> 列,数字 2 在第 <strong>1</strong> 列,3 在 2 的左边。
|
||||
注意,可能有多种正确的答案。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre><b>输入:</b>k = 3, rowConditions = [[1,2],[2,3],[3,1],[2,3]], colConditions = [[2,1]]
|
||||
<b>输出:</b>[]
|
||||
<b>解释:</b>由前两个条件可以得到 3 在 1 的下面,但第三个条件是 3 在 1 的上面。
|
||||
没有符合条件的矩阵存在,所以我们返回空矩阵。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>2 <= k <= 400</code></li>
|
||||
<li><code>1 <= rowConditions.length, colConditions.length <= 10<sup>4</sup></code></li>
|
||||
<li><code>rowConditions[i].length == colConditions[i].length == 2</code></li>
|
||||
<li><code>1 <= above<sub>i</sub>, below<sub>i</sub>, left<sub>i</sub>, right<sub>i</sub> <= k</code></li>
|
||||
<li><code>above<sub>i</sub> != below<sub>i</sub></code></li>
|
||||
<li><code>left<sub>i</sub> != right<sub>i</sub></code></li>
|
||||
</ul>
|
@ -0,0 +1,46 @@
|
||||
<p>You are given a string <code>s</code>, which contains stars <code>*</code>.</p>
|
||||
|
||||
<p>In one operation, you can:</p>
|
||||
|
||||
<ul>
|
||||
<li>Choose a star in <code>s</code>.</li>
|
||||
<li>Remove the closest <strong>non-star</strong> character to its <strong>left</strong>, as well as remove the star itself.</li>
|
||||
</ul>
|
||||
|
||||
<p>Return <em>the string after <strong>all</strong> stars have been removed</em>.</p>
|
||||
|
||||
<p><strong>Note:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li>The input will be generated such that the operation is always possible.</li>
|
||||
<li>It can be shown that the resulting string will always be unique.</li>
|
||||
</ul>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Example 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> s = "leet**cod*e"
|
||||
<strong>Output:</strong> "lecoe"
|
||||
<strong>Explanation:</strong> Performing the removals from left to right:
|
||||
- The closest character to the 1<sup>st</sup> star is 't' in "lee<strong><u>t</u></strong>**cod*e". s becomes "lee*cod*e".
|
||||
- The closest character to the 2<sup>nd</sup> star is 'e' in "le<strong><u>e</u></strong>*cod*e". s becomes "lecod*e".
|
||||
- The closest character to the 3<sup>rd</sup> star is 'd' in "leco<strong><u>d</u></strong>*e". s becomes "lecoe".
|
||||
There are no more stars, so we return "lecoe".</pre>
|
||||
|
||||
<p><strong>Example 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> s = "erase*****"
|
||||
<strong>Output:</strong> ""
|
||||
<strong>Explanation:</strong> The entire string is removed, so we return an empty string.
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Constraints:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= s.length <= 10<sup>5</sup></code></li>
|
||||
<li><code>s</code> consists of lowercase English letters and stars <code>*</code>.</li>
|
||||
<li>The operation above can be performed on <code>s</code>.</li>
|
||||
</ul>
|
@ -0,0 +1,34 @@
|
||||
<p>You are given an integer array <code>nums</code> of length <code>n</code>, and an integer array <code>queries</code> of length <code>m</code>.</p>
|
||||
|
||||
<p>Return <em>an array </em><code>answer</code><em> of length </em><code>m</code><em> where </em><code>answer[i]</code><em> is the <strong>maximum</strong> size of a <strong>subsequence</strong> that you can take from </em><code>nums</code><em> such that the <strong>sum</strong> of its elements is less than or equal to </em><code>queries[i]</code>.</p>
|
||||
|
||||
<p>A <strong>subsequence</strong> is an array that can be derived from another array by deleting some or no elements without changing the order of the remaining elements.</p>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Example 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> nums = [4,5,2,1], queries = [3,10,21]
|
||||
<strong>Output:</strong> [2,3,4]
|
||||
<strong>Explanation:</strong> We answer the queries as follows:
|
||||
- The subsequence [2,1] has a sum less than or equal to 3. It can be proven that 2 is the maximum size of such a subsequence, so answer[0] = 2.
|
||||
- The subsequence [4,5,1] has a sum less than or equal to 10. It can be proven that 3 is the maximum size of such a subsequence, so answer[1] = 3.
|
||||
- The subsequence [4,5,2,1] has a sum less than or equal to 21. It can be proven that 4 is the maximum size of such a subsequence, so answer[2] = 4.
|
||||
</pre>
|
||||
|
||||
<p><strong>Example 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> nums = [2,3,4,5], queries = [1]
|
||||
<strong>Output:</strong> [0]
|
||||
<strong>Explanation:</strong> The empty subsequence is the only subsequence that has a sum less than or equal to 1, so answer[0] = 0.</pre>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Constraints:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>n == nums.length</code></li>
|
||||
<li><code>m == queries.length</code></li>
|
||||
<li><code>1 <= n, m <= 1000</code></li>
|
||||
<li><code>1 <= nums[i], queries[i] <= 10<sup>6</sup></code></li>
|
||||
</ul>
|
@ -0,0 +1,57 @@
|
||||
<p>You are given a <strong>0-indexed</strong> array of strings <code>garbage</code> where <code>garbage[i]</code> represents the assortment of garbage at the <code>i<sup>th</sup></code> house. <code>garbage[i]</code> consists only of the characters <code>'M'</code>, <code>'P'</code> and <code>'G'</code> representing one unit of metal, paper and glass garbage respectively. Picking up <strong>one</strong> unit of any type of garbage takes <code>1</code> minute.</p>
|
||||
|
||||
<p>You are also given a <strong>0-indexed</strong> integer array <code>travel</code> where <code>travel[i]</code> is the number of minutes needed to go from house <code>i</code> to house <code>i + 1</code>.</p>
|
||||
|
||||
<p>There are three garbage trucks in the city, each responsible for picking up one type of garbage. Each garbage truck starts at house <code>0</code> and must visit each house <strong>in order</strong>; however, they do <strong>not</strong> need to visit every house.</p>
|
||||
|
||||
<p>Only <strong>one</strong> garbage truck may be used at any given moment. While one truck is driving or picking up garbage, the other two trucks <strong>cannot</strong> do anything.</p>
|
||||
|
||||
<p>Return<em> the <strong>minimum</strong> number of minutes needed to pick up all the garbage.</em></p>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Example 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> garbage = ["G","P","GP","GG"], travel = [2,4,3]
|
||||
<strong>Output:</strong> 21
|
||||
<strong>Explanation:</strong>
|
||||
The paper garbage truck:
|
||||
1. Travels from house 0 to house 1
|
||||
2. Collects the paper garbage at house 1
|
||||
3. Travels from house 1 to house 2
|
||||
4. Collects the paper garbage at house 2
|
||||
Altogether, it takes 8 minutes to pick up all the paper garbage.
|
||||
The glass garbage truck:
|
||||
1. Collects the glass garbage at house 0
|
||||
2. Travels from house 0 to house 1
|
||||
3. Travels from house 1 to house 2
|
||||
4. Collects the glass garbage at house 2
|
||||
5. Travels from house 2 to house 3
|
||||
6. Collects the glass garbage at house 3
|
||||
Altogether, it takes 13 minutes to pick up all the glass garbage.
|
||||
Since there is no metal garbage, we do not need to consider the metal garbage truck.
|
||||
Therefore, it takes a total of 8 + 13 = 21 minutes to collect all the garbage.
|
||||
</pre>
|
||||
|
||||
<p><strong>Example 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> garbage = ["MMM","PGM","GP"], travel = [3,10]
|
||||
<strong>Output:</strong> 37
|
||||
<strong>Explanation:</strong>
|
||||
The metal garbage truck takes 7 minutes to pick up all the metal garbage.
|
||||
The paper garbage truck takes 15 minutes to pick up all the paper garbage.
|
||||
The glass garbage truck takes 15 minutes to pick up all the glass garbage.
|
||||
It takes a total of 7 + 15 + 15 = 37 minutes to collect all the garbage.
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Constraints:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>2 <= garbage.length <= 10<sup>5</sup></code></li>
|
||||
<li><code>garbage[i]</code> consists of only the letters <code>'M'</code>, <code>'P'</code>, and <code>'G'</code>.</li>
|
||||
<li><code>1 <= garbage[i].length <= 10</code></li>
|
||||
<li><code>travel.length == garbage.length - 1</code></li>
|
||||
<li><code>1 <= travel[i] <= 100</code></li>
|
||||
</ul>
|
@ -0,0 +1,56 @@
|
||||
<p>You are given a <strong>positive</strong> integer <code>k</code>. You are also given:</p>
|
||||
|
||||
<ul>
|
||||
<li>a 2D integer array <code>rowConditions</code> of size <code>n</code> where <code>rowConditions[i] = [above<sub>i</sub>, below<sub>i</sub>]</code>, and</li>
|
||||
<li>a 2D integer array <code>colConditions</code> of size <code>m</code> where <code>colConditions[i] = [left<sub>i</sub>, right<sub>i</sub>]</code>.</li>
|
||||
</ul>
|
||||
|
||||
<p>The two arrays contain integers from <code>1</code> to <code>k</code>.</p>
|
||||
|
||||
<p>You have to build a <code>k x k</code> matrix that contains each of the numbers from <code>1</code> to <code>k</code> <strong>exactly once</strong>. The remaining cells should have the value <code>0</code>.</p>
|
||||
|
||||
<p>The matrix should also satisfy the following conditions:</p>
|
||||
|
||||
<ul>
|
||||
<li>The number <code>above<sub>i</sub></code> should appear in a <strong>row</strong> that is strictly <strong>above</strong> the row at which the number <code>below<sub>i</sub></code> appears for all <code>i</code> from <code>0</code> to <code>n - 1</code>.</li>
|
||||
<li>The number <code>left<sub>i</sub></code> should appear in a <strong>column</strong> that is strictly <strong>left</strong> of the column at which the number <code>right<sub>i</sub></code> appears for all <code>i</code> from <code>0</code> to <code>m - 1</code>.</li>
|
||||
</ul>
|
||||
|
||||
<p>Return <em><strong>any</strong> matrix that satisfies the conditions</em>. If no answer exists, return an empty matrix.</p>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Example 1:</strong></p>
|
||||
<img alt="" src="https://assets.leetcode.com/uploads/2022/07/06/gridosdrawio.png" style="width: 211px; height: 211px;" />
|
||||
<pre>
|
||||
<strong>Input:</strong> k = 3, rowConditions = [[1,2],[3,2]], colConditions = [[2,1],[3,2]]
|
||||
<strong>Output:</strong> [[3,0,0],[0,0,1],[0,2,0]]
|
||||
<strong>Explanation:</strong> The diagram above shows a valid example of a matrix that satisfies all the conditions.
|
||||
The row conditions are the following:
|
||||
- Number 1 is in row <u>1</u>, and number 2 is in row <u>2</u>, so 1 is above 2 in the matrix.
|
||||
- Number 3 is in row <u>0</u>, and number 2 is in row <u>2</u>, so 3 is above 2 in the matrix.
|
||||
The column conditions are the following:
|
||||
- Number 2 is in column <u>1</u>, and number 1 is in column <u>2</u>, so 2 is left of 1 in the matrix.
|
||||
- Number 3 is in column <u>0</u>, and number 2 is in column <u>1</u>, so 3 is left of 2 in the matrix.
|
||||
Note that there may be multiple correct answers.
|
||||
</pre>
|
||||
|
||||
<p><strong>Example 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> k = 3, rowConditions = [[1,2],[2,3],[3,1],[2,3]], colConditions = [[2,1]]
|
||||
<strong>Output:</strong> []
|
||||
<strong>Explanation:</strong> From the first two conditions, 3 has to be below 1 but the third conditions needs 3 to be above 1 to be satisfied.
|
||||
No matrix can satisfy all the conditions, so we return the empty matrix.
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Constraints:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>2 <= k <= 400</code></li>
|
||||
<li><code>1 <= rowConditions.length, colConditions.length <= 10<sup>4</sup></code></li>
|
||||
<li><code>rowConditions[i].length == colConditions[i].length == 2</code></li>
|
||||
<li><code>1 <= above<sub>i</sub>, below<sub>i</sub>, left<sub>i</sub>, right<sub>i</sub> <= k</code></li>
|
||||
<li><code>above<sub>i</sub> != below<sub>i</sub></code></li>
|
||||
<li><code>left<sub>i</sub> != right<sub>i</sub></code></li>
|
||||
</ul>
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,52 @@
|
||||
{
|
||||
"data": {
|
||||
"question": {
|
||||
"questionId": "2523",
|
||||
"questionFrontendId": "2388",
|
||||
"boundTopicId": null,
|
||||
"title": "Change Null Values in a Table to the Previous Value",
|
||||
"titleSlug": "change-null-values-in-a-table-to-the-previous-value",
|
||||
"content": null,
|
||||
"translatedTitle": null,
|
||||
"translatedContent": null,
|
||||
"isPaidOnly": true,
|
||||
"difficulty": "Medium",
|
||||
"likes": 7,
|
||||
"dislikes": 1,
|
||||
"isLiked": null,
|
||||
"similarQuestions": "[]",
|
||||
"exampleTestcases": null,
|
||||
"categoryTitle": "Database",
|
||||
"contributors": [],
|
||||
"topicTags": [],
|
||||
"companyTagStats": null,
|
||||
"codeSnippets": null,
|
||||
"stats": "{\"totalAccepted\": \"130\", \"totalSubmission\": \"146\", \"totalAcceptedRaw\": 130, \"totalSubmissionRaw\": 146, \"acRate\": \"89.0%\"}",
|
||||
"hints": [],
|
||||
"solution": null,
|
||||
"status": null,
|
||||
"sampleTestCase": "{\"headers\": {\"CoffeeShop\": [\"id\", \"drink\"]}, \"rows\": {\"CoffeeShop\": [[9, \"Mezcal Margarita\"], [6, null], [7, null], [3, \"Americano\"], [1, \"Daiquiri\"], [2, null]]}}",
|
||||
"metaData": "{\n \"mysql\": [\n \"Create table If Not Exists CoffeeShop (id int, drink varchar(20))\"\n ],\n \"mssql\": [\n \"Create table CoffeeShop (id int, drink varchar(20))\"\n ],\n \"oraclesql\": [\n \"Create table CoffeeShop (id int, drink varchar(20))\"\n ],\n \"database\": true\n}",
|
||||
"judgerAvailable": true,
|
||||
"judgeType": "large",
|
||||
"mysqlSchemas": [
|
||||
"Create table If Not Exists CoffeeShop (id int, drink varchar(20))",
|
||||
"Truncate table CoffeeShop",
|
||||
"insert into CoffeeShop (id, drink) values ('9', 'Mezcal Margarita')",
|
||||
"insert into CoffeeShop (id, drink) values ('6', 'None')",
|
||||
"insert into CoffeeShop (id, drink) values ('7', 'None')",
|
||||
"insert into CoffeeShop (id, drink) values ('3', 'Americano')",
|
||||
"insert into CoffeeShop (id, drink) values ('1', 'Daiquiri')",
|
||||
"insert into CoffeeShop (id, drink) values ('2', 'None')"
|
||||
],
|
||||
"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"
|
||||
}
|
||||
}
|
||||
}
|
161
leetcode/originData/build-a-matrix-with-conditions.json
Normal file
161
leetcode/originData/build-a-matrix-with-conditions.json
Normal file
File diff suppressed because one or more lines are too long
162
leetcode/originData/longest-subsequence-with-limited-sum.json
Normal file
162
leetcode/originData/longest-subsequence-with-limited-sum.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
161
leetcode/originData/removing-stars-from-a-string.json
Normal file
161
leetcode/originData/removing-stars-from-a-string.json
Normal file
File diff suppressed because one or more lines are too long
56
leetcode/problem/build-a-matrix-with-conditions.html
Normal file
56
leetcode/problem/build-a-matrix-with-conditions.html
Normal file
@ -0,0 +1,56 @@
|
||||
<p>You are given a <strong>positive</strong> integer <code>k</code>. You are also given:</p>
|
||||
|
||||
<ul>
|
||||
<li>a 2D integer array <code>rowConditions</code> of size <code>n</code> where <code>rowConditions[i] = [above<sub>i</sub>, below<sub>i</sub>]</code>, and</li>
|
||||
<li>a 2D integer array <code>colConditions</code> of size <code>m</code> where <code>colConditions[i] = [left<sub>i</sub>, right<sub>i</sub>]</code>.</li>
|
||||
</ul>
|
||||
|
||||
<p>The two arrays contain integers from <code>1</code> to <code>k</code>.</p>
|
||||
|
||||
<p>You have to build a <code>k x k</code> matrix that contains each of the numbers from <code>1</code> to <code>k</code> <strong>exactly once</strong>. The remaining cells should have the value <code>0</code>.</p>
|
||||
|
||||
<p>The matrix should also satisfy the following conditions:</p>
|
||||
|
||||
<ul>
|
||||
<li>The number <code>above<sub>i</sub></code> should appear in a <strong>row</strong> that is strictly <strong>above</strong> the row at which the number <code>below<sub>i</sub></code> appears for all <code>i</code> from <code>0</code> to <code>n - 1</code>.</li>
|
||||
<li>The number <code>left<sub>i</sub></code> should appear in a <strong>column</strong> that is strictly <strong>left</strong> of the column at which the number <code>right<sub>i</sub></code> appears for all <code>i</code> from <code>0</code> to <code>m - 1</code>.</li>
|
||||
</ul>
|
||||
|
||||
<p>Return <em><strong>any</strong> matrix that satisfies the conditions</em>. If no answer exists, return an empty matrix.</p>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Example 1:</strong></p>
|
||||
<img alt="" src="https://assets.leetcode.com/uploads/2022/07/06/gridosdrawio.png" style="width: 211px; height: 211px;" />
|
||||
<pre>
|
||||
<strong>Input:</strong> k = 3, rowConditions = [[1,2],[3,2]], colConditions = [[2,1],[3,2]]
|
||||
<strong>Output:</strong> [[3,0,0],[0,0,1],[0,2,0]]
|
||||
<strong>Explanation:</strong> The diagram above shows a valid example of a matrix that satisfies all the conditions.
|
||||
The row conditions are the following:
|
||||
- Number 1 is in row <u>1</u>, and number 2 is in row <u>2</u>, so 1 is above 2 in the matrix.
|
||||
- Number 3 is in row <u>0</u>, and number 2 is in row <u>2</u>, so 3 is above 2 in the matrix.
|
||||
The column conditions are the following:
|
||||
- Number 2 is in column <u>1</u>, and number 1 is in column <u>2</u>, so 2 is left of 1 in the matrix.
|
||||
- Number 3 is in column <u>0</u>, and number 2 is in column <u>1</u>, so 3 is left of 2 in the matrix.
|
||||
Note that there may be multiple correct answers.
|
||||
</pre>
|
||||
|
||||
<p><strong>Example 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> k = 3, rowConditions = [[1,2],[2,3],[3,1],[2,3]], colConditions = [[2,1]]
|
||||
<strong>Output:</strong> []
|
||||
<strong>Explanation:</strong> From the first two conditions, 3 has to be below 1 but the third conditions needs 3 to be above 1 to be satisfied.
|
||||
No matrix can satisfy all the conditions, so we return the empty matrix.
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Constraints:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>2 <= k <= 400</code></li>
|
||||
<li><code>1 <= rowConditions.length, colConditions.length <= 10<sup>4</sup></code></li>
|
||||
<li><code>rowConditions[i].length == colConditions[i].length == 2</code></li>
|
||||
<li><code>1 <= above<sub>i</sub>, below<sub>i</sub>, left<sub>i</sub>, right<sub>i</sub> <= k</code></li>
|
||||
<li><code>above<sub>i</sub> != below<sub>i</sub></code></li>
|
||||
<li><code>left<sub>i</sub> != right<sub>i</sub></code></li>
|
||||
</ul>
|
34
leetcode/problem/longest-subsequence-with-limited-sum.html
Normal file
34
leetcode/problem/longest-subsequence-with-limited-sum.html
Normal file
@ -0,0 +1,34 @@
|
||||
<p>You are given an integer array <code>nums</code> of length <code>n</code>, and an integer array <code>queries</code> of length <code>m</code>.</p>
|
||||
|
||||
<p>Return <em>an array </em><code>answer</code><em> of length </em><code>m</code><em> where </em><code>answer[i]</code><em> is the <strong>maximum</strong> size of a <strong>subsequence</strong> that you can take from </em><code>nums</code><em> such that the <strong>sum</strong> of its elements is less than or equal to </em><code>queries[i]</code>.</p>
|
||||
|
||||
<p>A <strong>subsequence</strong> is an array that can be derived from another array by deleting some or no elements without changing the order of the remaining elements.</p>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Example 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> nums = [4,5,2,1], queries = [3,10,21]
|
||||
<strong>Output:</strong> [2,3,4]
|
||||
<strong>Explanation:</strong> We answer the queries as follows:
|
||||
- The subsequence [2,1] has a sum less than or equal to 3. It can be proven that 2 is the maximum size of such a subsequence, so answer[0] = 2.
|
||||
- The subsequence [4,5,1] has a sum less than or equal to 10. It can be proven that 3 is the maximum size of such a subsequence, so answer[1] = 3.
|
||||
- The subsequence [4,5,2,1] has a sum less than or equal to 21. It can be proven that 4 is the maximum size of such a subsequence, so answer[2] = 4.
|
||||
</pre>
|
||||
|
||||
<p><strong>Example 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> nums = [2,3,4,5], queries = [1]
|
||||
<strong>Output:</strong> [0]
|
||||
<strong>Explanation:</strong> The empty subsequence is the only subsequence that has a sum less than or equal to 1, so answer[0] = 0.</pre>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Constraints:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>n == nums.length</code></li>
|
||||
<li><code>m == queries.length</code></li>
|
||||
<li><code>1 <= n, m <= 1000</code></li>
|
||||
<li><code>1 <= nums[i], queries[i] <= 10<sup>6</sup></code></li>
|
||||
</ul>
|
@ -0,0 +1,57 @@
|
||||
<p>You are given a <strong>0-indexed</strong> array of strings <code>garbage</code> where <code>garbage[i]</code> represents the assortment of garbage at the <code>i<sup>th</sup></code> house. <code>garbage[i]</code> consists only of the characters <code>'M'</code>, <code>'P'</code> and <code>'G'</code> representing one unit of metal, paper and glass garbage respectively. Picking up <strong>one</strong> unit of any type of garbage takes <code>1</code> minute.</p>
|
||||
|
||||
<p>You are also given a <strong>0-indexed</strong> integer array <code>travel</code> where <code>travel[i]</code> is the number of minutes needed to go from house <code>i</code> to house <code>i + 1</code>.</p>
|
||||
|
||||
<p>There are three garbage trucks in the city, each responsible for picking up one type of garbage. Each garbage truck starts at house <code>0</code> and must visit each house <strong>in order</strong>; however, they do <strong>not</strong> need to visit every house.</p>
|
||||
|
||||
<p>Only <strong>one</strong> garbage truck may be used at any given moment. While one truck is driving or picking up garbage, the other two trucks <strong>cannot</strong> do anything.</p>
|
||||
|
||||
<p>Return<em> the <strong>minimum</strong> number of minutes needed to pick up all the garbage.</em></p>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Example 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> garbage = ["G","P","GP","GG"], travel = [2,4,3]
|
||||
<strong>Output:</strong> 21
|
||||
<strong>Explanation:</strong>
|
||||
The paper garbage truck:
|
||||
1. Travels from house 0 to house 1
|
||||
2. Collects the paper garbage at house 1
|
||||
3. Travels from house 1 to house 2
|
||||
4. Collects the paper garbage at house 2
|
||||
Altogether, it takes 8 minutes to pick up all the paper garbage.
|
||||
The glass garbage truck:
|
||||
1. Collects the glass garbage at house 0
|
||||
2. Travels from house 0 to house 1
|
||||
3. Travels from house 1 to house 2
|
||||
4. Collects the glass garbage at house 2
|
||||
5. Travels from house 2 to house 3
|
||||
6. Collects the glass garbage at house 3
|
||||
Altogether, it takes 13 minutes to pick up all the glass garbage.
|
||||
Since there is no metal garbage, we do not need to consider the metal garbage truck.
|
||||
Therefore, it takes a total of 8 + 13 = 21 minutes to collect all the garbage.
|
||||
</pre>
|
||||
|
||||
<p><strong>Example 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> garbage = ["MMM","PGM","GP"], travel = [3,10]
|
||||
<strong>Output:</strong> 37
|
||||
<strong>Explanation:</strong>
|
||||
The metal garbage truck takes 7 minutes to pick up all the metal garbage.
|
||||
The paper garbage truck takes 15 minutes to pick up all the paper garbage.
|
||||
The glass garbage truck takes 15 minutes to pick up all the glass garbage.
|
||||
It takes a total of 7 + 15 + 15 = 37 minutes to collect all the garbage.
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Constraints:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>2 <= garbage.length <= 10<sup>5</sup></code></li>
|
||||
<li><code>garbage[i]</code> consists of only the letters <code>'M'</code>, <code>'P'</code>, and <code>'G'</code>.</li>
|
||||
<li><code>1 <= garbage[i].length <= 10</code></li>
|
||||
<li><code>travel.length == garbage.length - 1</code></li>
|
||||
<li><code>1 <= travel[i] <= 100</code></li>
|
||||
</ul>
|
46
leetcode/problem/removing-stars-from-a-string.html
Normal file
46
leetcode/problem/removing-stars-from-a-string.html
Normal file
@ -0,0 +1,46 @@
|
||||
<p>You are given a string <code>s</code>, which contains stars <code>*</code>.</p>
|
||||
|
||||
<p>In one operation, you can:</p>
|
||||
|
||||
<ul>
|
||||
<li>Choose a star in <code>s</code>.</li>
|
||||
<li>Remove the closest <strong>non-star</strong> character to its <strong>left</strong>, as well as remove the star itself.</li>
|
||||
</ul>
|
||||
|
||||
<p>Return <em>the string after <strong>all</strong> stars have been removed</em>.</p>
|
||||
|
||||
<p><strong>Note:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li>The input will be generated such that the operation is always possible.</li>
|
||||
<li>It can be shown that the resulting string will always be unique.</li>
|
||||
</ul>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Example 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> s = "leet**cod*e"
|
||||
<strong>Output:</strong> "lecoe"
|
||||
<strong>Explanation:</strong> Performing the removals from left to right:
|
||||
- The closest character to the 1<sup>st</sup> star is 't' in "lee<strong><u>t</u></strong>**cod*e". s becomes "lee*cod*e".
|
||||
- The closest character to the 2<sup>nd</sup> star is 'e' in "le<strong><u>e</u></strong>*cod*e". s becomes "lecod*e".
|
||||
- The closest character to the 3<sup>rd</sup> star is 'd' in "leco<strong><u>d</u></strong>*e". s becomes "lecoe".
|
||||
There are no more stars, so we return "lecoe".</pre>
|
||||
|
||||
<p><strong>Example 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> s = "erase*****"
|
||||
<strong>Output:</strong> ""
|
||||
<strong>Explanation:</strong> The entire string is removed, so we return an empty string.
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Constraints:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= s.length <= 10<sup>5</sup></code></li>
|
||||
<li><code>s</code> consists of lowercase English letters and stars <code>*</code>.</li>
|
||||
<li>The operation above can be performed on <code>s</code>.</li>
|
||||
</ul>
|
Loading…
Reference in New Issue
Block a user