mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-09-04 15:01:40 +08:00
update
This commit is contained in:
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
174
leetcode/originData/find-the-original-array-of-prefix-xor.json
Normal file
174
leetcode/originData/find-the-original-array-of-prefix-xor.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
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
39
leetcode/problem/find-the-original-array-of-prefix-xor.html
Normal file
39
leetcode/problem/find-the-original-array-of-prefix-xor.html
Normal file
@@ -0,0 +1,39 @@
|
||||
<p>You are given an <strong>integer</strong> array <code>pref</code> of size <code>n</code>. Find and return <em>the array </em><code>arr</code><em> of size </em><code>n</code><em> that satisfies</em>:</p>
|
||||
|
||||
<ul>
|
||||
<li><code>pref[i] = arr[0] ^ arr[1] ^ ... ^ arr[i]</code>.</li>
|
||||
</ul>
|
||||
|
||||
<p>Note that <code>^</code> denotes the <strong>bitwise-xor</strong> operation.</p>
|
||||
|
||||
<p>It can be proven that the answer is <strong>unique</strong>.</p>
|
||||
|
||||
<p> </p>
|
||||
<p><strong class="example">Example 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> pref = [5,2,0,3,1]
|
||||
<strong>Output:</strong> [5,7,2,3,2]
|
||||
<strong>Explanation:</strong> From the array [5,7,2,3,2] we have the following:
|
||||
- pref[0] = 5.
|
||||
- pref[1] = 5 ^ 7 = 2.
|
||||
- pref[2] = 5 ^ 7 ^ 2 = 0.
|
||||
- pref[3] = 5 ^ 7 ^ 2 ^ 3 = 3.
|
||||
- pref[4] = 5 ^ 7 ^ 2 ^ 3 ^ 2 = 1.
|
||||
</pre>
|
||||
|
||||
<p><strong class="example">Example 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> pref = [13]
|
||||
<strong>Output:</strong> [13]
|
||||
<strong>Explanation:</strong> We have pref[0] = arr[0] = 13.
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Constraints:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= pref.length <= 10<sup>5</sup></code></li>
|
||||
<li><code>0 <= pref[i] <= 10<sup>6</sup></code></li>
|
||||
</ul>
|
@@ -0,0 +1,42 @@
|
||||
<p>You are given a <strong>0-indexed</strong> <code>m x n</code> integer matrix <code>grid</code> and an integer <code>k</code>. You are currently at position <code>(0, 0)</code> and you want to reach position <code>(m - 1, n - 1)</code> moving only <strong>down</strong> or <strong>right</strong>.</p>
|
||||
|
||||
<p>Return<em> the number of paths where the sum of the elements on the path is divisible by </em><code>k</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 class="example">Example 1:</strong></p>
|
||||
<img src="https://assets.leetcode.com/uploads/2022/08/13/image-20220813183124-1.png" style="width: 437px; height: 200px;" />
|
||||
<pre>
|
||||
<strong>Input:</strong> grid = [[5,2,4],[3,0,5],[0,7,2]], k = 3
|
||||
<strong>Output:</strong> 2
|
||||
<strong>Explanation:</strong> There are two paths where the sum of the elements on the path is divisible by k.
|
||||
The first path highlighted in red has a sum of 5 + 2 + 4 + 5 + 2 = 18 which is divisible by 3.
|
||||
The second path highlighted in blue has a sum of 5 + 3 + 0 + 5 + 2 = 15 which is divisible by 3.
|
||||
</pre>
|
||||
|
||||
<p><strong class="example">Example 2:</strong></p>
|
||||
<img src="https://assets.leetcode.com/uploads/2022/08/17/image-20220817112930-3.png" style="height: 85px; width: 132px;" />
|
||||
<pre>
|
||||
<strong>Input:</strong> grid = [[0,0]], k = 5
|
||||
<strong>Output:</strong> 1
|
||||
<strong>Explanation:</strong> The path highlighted in red has a sum of 0 + 0 = 0 which is divisible by 5.
|
||||
</pre>
|
||||
|
||||
<p><strong class="example">Example 3:</strong></p>
|
||||
<img src="https://assets.leetcode.com/uploads/2022/08/12/image-20220812224605-3.png" style="width: 257px; height: 200px;" />
|
||||
<pre>
|
||||
<strong>Input:</strong> grid = [[7,3,4,9],[2,3,6,2],[2,3,7,0]], k = 1
|
||||
<strong>Output:</strong> 10
|
||||
<strong>Explanation:</strong> Every integer is divisible by 1 so the sum of the elements on every possible path is divisible by k.
|
||||
</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 <= 5 * 10<sup>4</sup></code></li>
|
||||
<li><code>1 <= m * n <= 5 * 10<sup>4</sup></code></li>
|
||||
<li><code>0 <= grid[i][j] <= 100</code></li>
|
||||
<li><code>1 <= k <= 50</code></li>
|
||||
</ul>
|
@@ -0,0 +1,63 @@
|
||||
<p>There are <code>n</code> employees, each with a unique id from <code>0</code> to <code>n - 1</code>.</p>
|
||||
|
||||
<p>You are given a 2D integer array <code>logs</code> where <code>logs[i] = [id<sub>i</sub>, leaveTime<sub>i</sub>]</code> where:</p>
|
||||
|
||||
<ul>
|
||||
<li><code>id<sub>i</sub></code> is the id of the employee that worked on the <code>i<sup>th</sup></code> task, and</li>
|
||||
<li><code>leaveTime<sub>i</sub></code> is the time at which the employee finished the <code>i<sup>th</sup></code> task. All the values <code>leaveTime<sub>i</sub></code> are <strong>unique</strong>.</li>
|
||||
</ul>
|
||||
|
||||
<p>Note that the <code>i<sup>th</sup></code> task starts the moment right after the <code>(i - 1)<sup>th</sup></code> task ends, and the <code>0<sup>th</sup></code> task starts at time <code>0</code>.</p>
|
||||
|
||||
<p>Return <em>the id of the employee that worked the task with the longest time.</em> If there is a tie between two or more employees, return<em> the <strong>smallest</strong> id among them</em>.</p>
|
||||
|
||||
<p> </p>
|
||||
<p><strong class="example">Example 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> n = 10, logs = [[0,3],[2,5],[0,9],[1,15]]
|
||||
<strong>Output:</strong> 1
|
||||
<strong>Explanation:</strong>
|
||||
Task 0 started at 0 and ended at 3 with 3 units of times.
|
||||
Task 1 started at 3 and ended at 5 with 2 units of times.
|
||||
Task 2 started at 5 and ended at 9 with 4 units of times.
|
||||
Task 3 started at 9 and ended at 15 with 6 units of times.
|
||||
The task with the longest time is task 3 and the employee with id 1 is the one that worked on it, so we return 1.
|
||||
</pre>
|
||||
|
||||
<p><strong class="example">Example 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> n = 26, logs = [[1,1],[3,7],[2,12],[7,17]]
|
||||
<strong>Output:</strong> 3
|
||||
<strong>Explanation:</strong>
|
||||
Task 0 started at 0 and ended at 1 with 1 unit of times.
|
||||
Task 1 started at 1 and ended at 7 with 6 units of times.
|
||||
Task 2 started at 7 and ended at 12 with 5 units of times.
|
||||
Task 3 started at 12 and ended at 17 with 5 units of times.
|
||||
The tasks with the longest time is task 1. The employees that worked on it is 3, so we return 3.
|
||||
</pre>
|
||||
|
||||
<p><strong class="example">Example 3:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> n = 2, logs = [[0,10],[1,20]]
|
||||
<strong>Output:</strong> 0
|
||||
<strong>Explanation:</strong>
|
||||
Task 0 started at 0 and ended at 10 with 10 units of times.
|
||||
Task 1 started at 10 and ended at 20 with 10 units of times.
|
||||
The tasks with the longest time are tasks 0 and 1. The employees that worked on them are 0 and 1, so we return the smallest id 0.
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Constraints:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>2 <= n <= 500</code></li>
|
||||
<li><code>1 <= logs.length <= 500</code></li>
|
||||
<li><code>logs[i].length == 2</code></li>
|
||||
<li><code>0 <= id<sub>i</sub> <= n - 1</code></li>
|
||||
<li><code>1 <= leaveTime<sub>i</sub> <= 500</code></li>
|
||||
<li><code>id<sub>i</sub> != id<sub>i+1</sub></code></li>
|
||||
<li><code>leaveTime<sub>i</sub></code> are sorted in a strictly increasing order.</li>
|
||||
</ul>
|
@@ -0,0 +1,51 @@
|
||||
<p>You are given a string <code>s</code> and a robot that currently holds an empty string <code>t</code>. Apply one of the following operations until <code>s</code> and <code>t</code> <strong>are both empty</strong>:</p>
|
||||
|
||||
<ul>
|
||||
<li>Remove the <strong>first</strong> character of a string <code>s</code> and give it to the robot. The robot will append this character to the string <code>t</code>.</li>
|
||||
<li>Remove the <strong>last</strong> character of a string <code>t</code> and give it to the robot. The robot will write this character on paper.</li>
|
||||
</ul>
|
||||
|
||||
<p>Return <em>the lexicographically smallest string that can be written on the paper.</em></p>
|
||||
|
||||
<p> </p>
|
||||
<p><strong class="example">Example 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> s = "zza"
|
||||
<strong>Output:</strong> "azz"
|
||||
<strong>Explanation:</strong> Let p denote the written string.
|
||||
Initially p="", s="zza", t="".
|
||||
Perform first operation three times p="", s="", t="zza".
|
||||
Perform second operation three times p="azz", s="", t="".
|
||||
</pre>
|
||||
|
||||
<p><strong class="example">Example 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> s = "bac"
|
||||
<strong>Output:</strong> "abc"
|
||||
<strong>Explanation:</strong> Let p denote the written string.
|
||||
Perform first operation twice p="", s="c", t="ba".
|
||||
Perform second operation twice p="ab", s="c", t="".
|
||||
Perform first operation p="ab", s="", t="c".
|
||||
Perform second operation p="abc", s="", t="".
|
||||
</pre>
|
||||
|
||||
<p><strong class="example">Example 3:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> s = "bdda"
|
||||
<strong>Output:</strong> "addb"
|
||||
<strong>Explanation:</strong> Let p denote the written string.
|
||||
Initially p="", s="bdda", t="".
|
||||
Perform first operation four times p="", s="", t="bdda".
|
||||
Perform second operation four times p="addb", s="", t="".
|
||||
</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 only English lowercase letters.</li>
|
||||
</ul>
|
Reference in New Issue
Block a user