mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-09-04 23:11:41 +08:00
update
This commit is contained in:
69
leetcode/problem/earliest-second-to-mark-indices-i.html
Normal file
69
leetcode/problem/earliest-second-to-mark-indices-i.html
Normal file
@@ -0,0 +1,69 @@
|
||||
<p>You are given two <strong>1-indexed</strong> integer arrays, <code>nums</code> and, <code>changeIndices</code>, having lengths <code>n</code> and <code>m</code>, respectively.</p>
|
||||
|
||||
<p>Initially, all indices in <code>nums</code> are unmarked. Your task is to mark <strong>all</strong> indices in <code>nums</code>.</p>
|
||||
|
||||
<p>In each second, <code>s</code>, in order from <code>1</code> to <code>m</code> (<strong>inclusive</strong>), you can perform <strong>one</strong> of the following operations:</p>
|
||||
|
||||
<ul>
|
||||
<li>Choose an index <code>i</code> in the range <code>[1, n]</code> and <strong>decrement</strong> <code>nums[i]</code> by <code>1</code>.</li>
|
||||
<li>If <code>nums[changeIndices[s]]</code> is <strong>equal</strong> to <code>0</code>, <strong>mark</strong> the index <code>changeIndices[s]</code>.</li>
|
||||
<li>Do nothing.</li>
|
||||
</ul>
|
||||
|
||||
<p>Return <em>an integer denoting the <strong>earliest second</strong> in the range </em><code>[1, m]</code><em> when <strong>all</strong> indices in </em><code>nums</code><em> can be marked by choosing operations optimally, or </em><code>-1</code><em> if it is impossible.</em></p>
|
||||
|
||||
<p> </p>
|
||||
<p><strong class="example">Example 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> nums = [2,2,0], changeIndices = [2,2,2,2,3,2,2,1]
|
||||
<strong>Output:</strong> 8
|
||||
<strong>Explanation:</strong> In this example, we have 8 seconds. The following operations can be performed to mark all indices:
|
||||
Second 1: Choose index 1 and decrement nums[1] by one. nums becomes [1,2,0].
|
||||
Second 2: Choose index 1 and decrement nums[1] by one. nums becomes [0,2,0].
|
||||
Second 3: Choose index 2 and decrement nums[2] by one. nums becomes [0,1,0].
|
||||
Second 4: Choose index 2 and decrement nums[2] by one. nums becomes [0,0,0].
|
||||
Second 5: Mark the index changeIndices[5], which is marking index 3, since nums[3] is equal to 0.
|
||||
Second 6: Mark the index changeIndices[6], which is marking index 2, since nums[2] is equal to 0.
|
||||
Second 7: Do nothing.
|
||||
Second 8: Mark the index changeIndices[8], which is marking index 1, since nums[1] is equal to 0.
|
||||
Now all indices have been marked.
|
||||
It can be shown that it is not possible to mark all indices earlier than the 8th second.
|
||||
Hence, the answer is 8.
|
||||
</pre>
|
||||
|
||||
<p><strong class="example">Example 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> nums = [1,3], changeIndices = [1,1,1,2,1,1,1]
|
||||
<strong>Output:</strong> 6
|
||||
<strong>Explanation:</strong> In this example, we have 7 seconds. The following operations can be performed to mark all indices:
|
||||
Second 1: Choose index 2 and decrement nums[2] by one. nums becomes [1,2].
|
||||
Second 2: Choose index 2 and decrement nums[2] by one. nums becomes [1,1].
|
||||
Second 3: Choose index 2 and decrement nums[2] by one. nums becomes [1,0].
|
||||
Second 4: Mark the index changeIndices[4], which is marking index 2, since nums[2] is equal to 0.
|
||||
Second 5: Choose index 1 and decrement nums[1] by one. nums becomes [0,0].
|
||||
Second 6: Mark the index changeIndices[6], which is marking index 1, since nums[1] is equal to 0.
|
||||
Now all indices have been marked.
|
||||
It can be shown that it is not possible to mark all indices earlier than the 6th second.
|
||||
Hence, the answer is 6.
|
||||
</pre>
|
||||
|
||||
<p><strong class="example">Example 3:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> nums = [0,1], changeIndices = [2,2,2]
|
||||
<strong>Output:</strong> -1
|
||||
<strong>Explanation:</strong> In this example, it is impossible to mark all indices because index 1 isn't in changeIndices.
|
||||
Hence, the answer is -1.
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Constraints:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= n == nums.length <= 2000</code></li>
|
||||
<li><code>0 <= nums[i] <= 10<sup>9</sup></code></li>
|
||||
<li><code>1 <= m == changeIndices.length <= 2000</code></li>
|
||||
<li><code>1 <= changeIndices[i] <= n</code></li>
|
||||
</ul>
|
69
leetcode/problem/earliest-second-to-mark-indices-ii.html
Normal file
69
leetcode/problem/earliest-second-to-mark-indices-ii.html
Normal file
@@ -0,0 +1,69 @@
|
||||
<p>You are given two <strong>1-indexed</strong> integer arrays, <code>nums</code> and, <code>changeIndices</code>, having lengths <code>n</code> and <code>m</code>, respectively.</p>
|
||||
|
||||
<p>Initially, all indices in <code>nums</code> are unmarked. Your task is to mark <strong>all</strong> indices in <code>nums</code>.</p>
|
||||
|
||||
<p>In each second, <code>s</code>, in order from <code>1</code> to <code>m</code> (<strong>inclusive</strong>), you can perform <strong>one</strong> of the following operations:</p>
|
||||
|
||||
<ul>
|
||||
<li>Choose an index <code>i</code> in the range <code>[1, n]</code> and <strong>decrement</strong> <code>nums[i]</code> by <code>1</code>.</li>
|
||||
<li>Set <code>nums[changeIndices[s]]</code> to any <strong>non-negative</strong> value.</li>
|
||||
<li>Choose an index <code>i</code> in the range <code>[1, n]</code>, where <code>nums[i]</code> is <strong>equal</strong> to <code>0</code>, and <strong>mark</strong> index <code>i</code>.</li>
|
||||
<li>Do nothing.</li>
|
||||
</ul>
|
||||
|
||||
<p>Return <em>an integer denoting the <strong>earliest second</strong> in the range </em><code>[1, m]</code><em> when <strong>all</strong> indices in </em><code>nums</code><em> can be marked by choosing operations optimally, or </em><code>-1</code><em> if it is impossible.</em></p>
|
||||
|
||||
<p> </p>
|
||||
<p><strong class="example">Example 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> nums = [3,2,3], changeIndices = [1,3,2,2,2,2,3]
|
||||
<strong>Output:</strong> 6
|
||||
<strong>Explanation:</strong> In this example, we have 7 seconds. The following operations can be performed to mark all indices:
|
||||
Second 1: Set nums[changeIndices[1]] to 0. nums becomes [0,2,3].
|
||||
Second 2: Set nums[changeIndices[2]] to 0. nums becomes [0,2,0].
|
||||
Second 3: Set nums[changeIndices[3]] to 0. nums becomes [0,0,0].
|
||||
Second 4: Mark index 1, since nums[1] is equal to 0.
|
||||
Second 5: Mark index 2, since nums[2] is equal to 0.
|
||||
Second 6: Mark index 3, since nums[3] is equal to 0.
|
||||
Now all indices have been marked.
|
||||
It can be shown that it is not possible to mark all indices earlier than the 6th second.
|
||||
Hence, the answer is 6.
|
||||
</pre>
|
||||
|
||||
<p><strong class="example">Example 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> nums = [0,0,1,2], changeIndices = [1,2,1,2,1,2,1,2]
|
||||
<strong>Output:</strong> 7
|
||||
<strong>Explanation:</strong> In this example, we have 8 seconds. The following operations can be performed to mark all indices:
|
||||
Second 1: Mark index 1, since nums[1] is equal to 0.
|
||||
Second 2: Mark index 2, since nums[2] is equal to 0.
|
||||
Second 3: Decrement index 4 by one. nums becomes [0,0,1,1].
|
||||
Second 4: Decrement index 4 by one. nums becomes [0,0,1,0].
|
||||
Second 5: Decrement index 3 by one. nums becomes [0,0,0,0].
|
||||
Second 6: Mark index 3, since nums[3] is equal to 0.
|
||||
Second 7: Mark index 4, since nums[4] is equal to 0.
|
||||
Now all indices have been marked.
|
||||
It can be shown that it is not possible to mark all indices earlier than the 7th second.
|
||||
Hence, the answer is 7.
|
||||
</pre>
|
||||
|
||||
<p><strong class="example">Example 3:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> nums = [1,2,3], changeIndices = [1,2,3]
|
||||
<strong>Output:</strong> -1
|
||||
<strong>Explanation: </strong>In this example, it can be shown that it is impossible to mark all indices, as we don't have enough seconds.
|
||||
Hence, the answer is -1.
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Constraints:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= n == nums.length <= 5000</code></li>
|
||||
<li><code>0 <= nums[i] <= 10<sup>9</sup></code></li>
|
||||
<li><code>1 <= m == changeIndices.length <= 5000</code></li>
|
||||
<li><code>1 <= changeIndices[i] <= n</code></li>
|
||||
</ul>
|
@@ -0,0 +1,46 @@
|
||||
<p>There exist <code>n</code> rectangles in a 2D plane. You are given two <strong>0-indexed</strong> 2D integer arrays <code>bottomLeft</code> and <code>topRight</code>, both of size <code>n x 2</code>, where <code>bottomLeft[i]</code> and <code>topRight[i]</code> represent the <strong>bottom-left</strong> and <strong>top-right</strong> coordinates of the <code>i<sup>th</sup></code> rectangle respectively.</p>
|
||||
|
||||
<p>You can select a region formed from the <strong>intersection</strong> of two of the given rectangles. You need to find the <strong>largest </strong>area of a <strong>square</strong> that can fit <strong>inside</strong> this region if you select the region optimally.</p>
|
||||
|
||||
<p>Return <em>the <strong>largest </strong>possible area of a square, or </em><code>0</code><em> if there <strong>do not</strong> exist any intersecting regions between the rectangles</em>.</p>
|
||||
|
||||
<p> </p>
|
||||
<p><strong class="example">Example 1:</strong></p>
|
||||
<img alt="" src="https://assets.leetcode.com/uploads/2024/01/05/example12.png" style="width: 443px; height: 364px; padding: 10px; background: rgb(255, 255, 255); border-radius: 0.5rem;" />
|
||||
<pre>
|
||||
<strong>Input:</strong> bottomLeft = [[1,1],[2,2],[3,1]], topRight = [[3,3],[4,4],[6,6]]
|
||||
<strong>Output:</strong> 1
|
||||
<strong>Explanation:</strong> A square with side length 1 can fit inside either the intersecting region of rectangle 0 and rectangle 1, or the intersecting region of rectangle 1 and rectangle 2. Hence the largest area is side * side which is 1 * 1 == 1.
|
||||
It can be shown that a square with a greater side length can not fit inside any intersecting region.
|
||||
</pre>
|
||||
|
||||
<p><strong class="example">Example 2:</strong></p>
|
||||
<img alt="" src="https://assets.leetcode.com/uploads/2024/01/04/rectanglesexample2.png" style="padding: 10px; background: rgb(255, 255, 255); border-radius: 0.5rem; width: 445px; height: 365px;" />
|
||||
<pre>
|
||||
<strong>Input:</strong> bottomLeft = [[1,1],[2,2],[1,2]], topRight = [[3,3],[4,4],[3,4]]
|
||||
<strong>Output:</strong> 1
|
||||
<strong>Explanation:</strong> A square with side length 1 can fit inside either the intersecting region of rectangle 0 and rectangle 1, the intersecting region of rectangle 1 and rectangle 2, or the intersection region of all 3 rectangles. Hence the largest area is side * side which is 1 * 1 == 1.
|
||||
It can be shown that a square with a greater side length can not fit inside any intersecting region.
|
||||
Note that the region can be formed by the intersection of more than 2 rectangles.
|
||||
</pre>
|
||||
|
||||
<p><strong class="example">Example 3:</strong></p>
|
||||
<img alt="" src="https://assets.leetcode.com/uploads/2024/01/04/rectanglesexample3.png" style="padding: 10px; background: rgb(255, 255, 255); border-radius: 0.5rem; width: 444px; height: 364px;" />
|
||||
<pre>
|
||||
<strong>Input:</strong> bottomLeft = [[1,1],[3,3],[3,1]], topRight = [[2,2],[4,4],[4,2]]
|
||||
<strong>Output:</strong> 0
|
||||
<strong>Explanation:</strong> No pair of rectangles intersect, hence, we return 0.
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Constraints:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>n == bottomLeft.length == topRight.length</code></li>
|
||||
<li><code>2 <= n <= 10<sup>3</sup></code></li>
|
||||
<li><code>bottomLeft[i].length == topRight[i].length == 2</code></li>
|
||||
<li><code>1 <= bottomLeft[i][0], bottomLeft[i][1] <= 10<sup>7</sup></code></li>
|
||||
<li><code>1 <= topRight[i][0], topRight[i][1] <= 10<sup>7</sup></code></li>
|
||||
<li><code>bottomLeft[i][0] < topRight[i][0]</code></li>
|
||||
<li><code>bottomLeft[i][1] < topRight[i][1]</code></li>
|
||||
</ul>
|
35
leetcode/problem/split-the-array.html
Normal file
35
leetcode/problem/split-the-array.html
Normal file
@@ -0,0 +1,35 @@
|
||||
<p>You are given an integer array <code>nums</code> of <strong>even</strong> length. You have to split the array into two parts <code>nums1</code> and <code>nums2</code> such that:</p>
|
||||
|
||||
<ul>
|
||||
<li><code>nums1.length == nums2.length == nums.length / 2</code>.</li>
|
||||
<li><code>nums1</code> should contain <strong>distinct </strong>elements.</li>
|
||||
<li><code>nums2</code> should also contain <strong>distinct</strong> elements.</li>
|
||||
</ul>
|
||||
|
||||
<p>Return <code>true</code><em> if it is possible to split the array, and </em><code>false</code> <em>otherwise</em><em>.</em></p>
|
||||
|
||||
<p> </p>
|
||||
<p><strong class="example">Example 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> nums = [1,1,2,2,3,4]
|
||||
<strong>Output:</strong> true
|
||||
<strong>Explanation:</strong> One of the possible ways to split nums is nums1 = [1,2,3] and nums2 = [1,2,4].
|
||||
</pre>
|
||||
|
||||
<p><strong class="example">Example 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> nums = [1,1,1,1]
|
||||
<strong>Output:</strong> false
|
||||
<strong>Explanation:</strong> The only possible way to split nums is nums1 = [1,1] and nums2 = [1,1]. Both nums1 and nums2 do not contain distinct elements. Therefore, we return false.
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Constraints:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= nums.length <= 100</code></li>
|
||||
<li><code>nums.length % 2 == 0 </code></li>
|
||||
<li><code>1 <= nums[i] <= 100</code></li>
|
||||
</ul>
|
Reference in New Issue
Block a user