mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-01-10 18:48:13 +08:00
update
This commit is contained in:
parent
8f6be18759
commit
95eae7766c
@ -1,6 +1,6 @@
|
||||
# 力扣题库(完整版)
|
||||
|
||||
> 最后更新日期: **2022.09.10**
|
||||
> 最后更新日期: **2022.09.17**
|
||||
>
|
||||
> 使用脚本前请务必仔细完整阅读本 `README.md` 文件
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
74
leetcode-cn/originData/[no content]design-sql.json
Normal file
74
leetcode-cn/originData/[no content]design-sql.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
209
leetcode-cn/originData/longest-increasing-subsequence-ii.json
Normal file
209
leetcode-cn/originData/longest-increasing-subsequence-ii.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
183
leetcode-cn/originData/most-frequent-even-element.json
Normal file
183
leetcode-cn/originData/most-frequent-even-element.json
Normal file
File diff suppressed because one or more lines are too long
183
leetcode-cn/originData/optimal-partition-of-string.json
Normal file
183
leetcode-cn/originData/optimal-partition-of-string.json
Normal file
File diff suppressed because one or more lines are too long
@ -0,0 +1,36 @@
|
||||
<p>给你一个整数数组 <code>nums</code> ,返回出现最频繁的偶数元素。</p>
|
||||
|
||||
<p>如果存在多个满足条件的元素,只需要返回 <strong>最小</strong> 的一个。如果不存在这样的元素,返回 <code>-1</code> 。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre><strong>输入:</strong>nums = [0,1,2,2,4,4,1]
|
||||
<strong>输出:</strong>2
|
||||
<strong>解释:</strong>
|
||||
数组中的偶数元素为 0、2 和 4 ,在这些元素中,2 和 4 出现次数最多。
|
||||
返回最小的那个,即返回 2 。</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre><strong>输入:</strong>nums = [4,4,4,9,2,4]
|
||||
<strong>输出:</strong>4
|
||||
<strong>解释:</strong>4 是出现最频繁的偶数元素。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 3:</strong></p>
|
||||
|
||||
<pre><strong>输入:</strong>nums = [29,47,21,41,13,37,25,7]
|
||||
<strong>输出:</strong>-1
|
||||
<strong>解释:</strong>不存在偶数元素。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= nums.length <= 2000</code></li>
|
||||
<li><code>0 <= nums[i] <= 10<sup>5</sup></code></li>
|
||||
</ul>
|
@ -0,0 +1,35 @@
|
||||
<p>给你一个字符串 <code>s</code> ,请你将该字符串划分成一个或多个 <strong>子字符串</strong> ,并满足每个子字符串中的字符都是 <strong>唯一</strong> 的。也就是说,在单个子字符串中,字母的出现次数都不超过 <strong>一次</strong> 。</p>
|
||||
|
||||
<p>满足题目要求的情况下,返回 <strong>最少</strong> 需要划分多少个子字符串<em>。</em></p>
|
||||
|
||||
<p>注意,划分后,原字符串中的每个字符都应该恰好属于一个子字符串。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>s = "abacaba"
|
||||
<strong>输出:</strong>4
|
||||
<strong>解释:</strong>
|
||||
两种可行的划分方法分别是 ("a","ba","cab","a") 和 ("ab","a","ca","ba") 。
|
||||
可以证明最少需要划分 4 个子字符串。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>s = "ssssss"
|
||||
<strong>输出:</strong>6
|
||||
<strong>解释:
|
||||
</strong>只存在一种可行的划分方法 ("s","s","s","s","s","s") 。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= s.length <= 10<sup>5</sup></code></li>
|
||||
<li><code>s</code> 仅由小写英文字母组成</li>
|
||||
</ul>
|
@ -0,0 +1,38 @@
|
||||
<p>给你一个二维整数数组 <code>intervals</code> ,其中 <code>intervals[i] = [left<sub>i</sub>, right<sub>i</sub>]</code> 表示 <strong>闭</strong> 区间 <code>[left<sub>i</sub>, right<sub>i</sub>]</code> 。</p>
|
||||
|
||||
<p>你需要将 <code>intervals</code> 划分为一个或者多个区间 <strong>组</strong> ,每个区间 <b>只</b> 属于一个组,且同一个组中任意两个区间 <strong>不相交</strong> 。</p>
|
||||
|
||||
<p>请你返回 <strong>最少</strong> 需要划分成多少个组。</p>
|
||||
|
||||
<p>如果两个区间覆盖的范围有重叠(即至少有一个公共数字),那么我们称这两个区间是 <strong>相交</strong> 的。比方说区间 <code>[1, 5]</code> 和 <code>[5, 8]</code> 相交。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<b>输入:</b>intervals = [[5,10],[6,8],[1,5],[2,3],[1,10]]
|
||||
<b>输出:</b>3
|
||||
<b>解释:</b>我们可以将区间划分为如下的区间组:
|
||||
- 第 1 组:[1, 5] ,[6, 8] 。
|
||||
- 第 2 组:[2, 3] ,[5, 10] 。
|
||||
- 第 3 组:[1, 10] 。
|
||||
可以证明无法将区间划分为少于 3 个组。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<b>输入:</b>intervals = [[1,3],[5,6],[8,10],[11,13]]
|
||||
<b>输出:</b>1
|
||||
<b>解释:</b>所有区间互不相交,所以我们可以把它们全部放在一个组内。</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= intervals.length <= 10<sup>5</sup></code></li>
|
||||
<li><code>intervals[i].length == 2</code></li>
|
||||
<li><code>1 <= left<sub>i</sub> <= right<sub>i</sub> <= 10<sup>6</sup></code></li>
|
||||
</ul>
|
@ -0,0 +1,51 @@
|
||||
<p>给你一个整数数组 <code>nums</code> 和一个整数 <code>k</code> 。</p>
|
||||
|
||||
<p>找到 <code>nums</code> 中满足以下要求的最长子序列:</p>
|
||||
|
||||
<ul>
|
||||
<li>子序列 <strong>严格递增</strong></li>
|
||||
<li>子序列中相邻元素的差值 <strong>不超过</strong> <code>k</code> 。</li>
|
||||
</ul>
|
||||
|
||||
<p>请你返回满足上述要求的 <strong>最长子序列</strong> 的长度。</p>
|
||||
|
||||
<p><strong>子序列</strong> 是从一个数组中删除部分元素后,剩余元素不改变顺序得到的数组。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre><b>输入:</b>nums = [4,2,1,4,3,4,5,8,15], k = 3
|
||||
<b>输出:</b>5
|
||||
<strong>解释:</strong>
|
||||
满足要求的最长子序列是 [1,3,4,5,8] 。
|
||||
子序列长度为 5 ,所以我们返回 5 。
|
||||
注意子序列 [1,3,4,5,8,15] 不满足要求,因为 15 - 8 = 7 大于 3 。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre><b>输入:</b>nums = [7,4,5,1,8,12,4,7], k = 5
|
||||
<b>输出:</b>4
|
||||
<strong>解释:</strong>
|
||||
满足要求的最长子序列是 [4,5,8,12] 。
|
||||
子序列长度为 4 ,所以我们返回 4 。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 3:</strong></p>
|
||||
|
||||
<pre><b>输入:</b>nums = [1,5], k = 1
|
||||
<b>输出:</b>1
|
||||
<strong>解释:</strong>
|
||||
满足要求的最长子序列是 [1] 。
|
||||
子序列长度为 1 ,所以我们返回 1 。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= nums.length <= 10<sup>5</sup></code></li>
|
||||
<li><code>1 <= nums[i], k <= 10<sup>5</sup></code></li>
|
||||
</ul>
|
@ -0,0 +1,44 @@
|
||||
<p>给你两个长度相同的整数数组 <code>target</code> 和 <code>arr</code> 。每一步中,你可以选择 <code>arr</code> 的任意 <strong>非空子数组</strong> 并将它翻转。你可以执行此过程任意次。</p>
|
||||
|
||||
<p><em>如果你能让 <code>arr</code> 变得与 <code>target</code> 相同,返回 True;否则,返回 False 。</em></p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>target = [1,2,3,4], arr = [2,4,1,3]
|
||||
<strong>输出:</strong>true
|
||||
<strong>解释:</strong>你可以按照如下步骤使 arr 变成 target:
|
||||
1- 翻转子数组 [2,4,1] ,arr 变成 [1,4,2,3]
|
||||
2- 翻转子数组 [4,2] ,arr 变成 [1,2,4,3]
|
||||
3- 翻转子数组 [4,3] ,arr 变成 [1,2,3,4]
|
||||
上述方法并不是唯一的,还存在多种将 arr 变成 target 的方法。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>target = [7], arr = [7]
|
||||
<strong>输出:</strong>true
|
||||
<strong>解释:</strong>arr 不需要做任何翻转已经与 target 相等。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 3:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>target = [3,7,9], arr = [3,7,11]
|
||||
<strong>输出:</strong>false
|
||||
<strong>解释:</strong>arr 没有数字 9 ,所以无论如何也无法变成 target 。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>target.length == arr.length</code></li>
|
||||
<li><code>1 <= target.length <= 1000</code></li>
|
||||
<li><code>1 <= target[i] <= 1000</code></li>
|
||||
<li><code>1 <= arr[i] <= 1000</code></li>
|
||||
</ul>
|
@ -0,0 +1,37 @@
|
||||
<p>Given an integer array <code>nums</code>, return <em>the most frequent even element</em>.</p>
|
||||
|
||||
<p>If there is a tie, return the <strong>smallest</strong> one. If there is no such element, return <code>-1</code>.</p>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Example 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> nums = [0,1,2,2,4,4,1]
|
||||
<strong>Output:</strong> 2
|
||||
<strong>Explanation:</strong>
|
||||
The even elements are 0, 2, and 4. Of these, 2 and 4 appear the most.
|
||||
We return the smallest one, which is 2.</pre>
|
||||
|
||||
<p><strong>Example 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> nums = [4,4,4,9,2,4]
|
||||
<strong>Output:</strong> 4
|
||||
<strong>Explanation:</strong> 4 is the even element appears the most.
|
||||
</pre>
|
||||
|
||||
<p><strong>Example 3:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> nums = [29,47,21,41,13,37,25,7]
|
||||
<strong>Output:</strong> -1
|
||||
<strong>Explanation:</strong> There is no even element.
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Constraints:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= nums.length <= 2000</code></li>
|
||||
<li><code>0 <= nums[i] <= 10<sup>5</sup></code></li>
|
||||
</ul>
|
@ -0,0 +1,33 @@
|
||||
<p>Given a string <code>s</code>, partition the string into one or more <strong>substrings</strong> such that the characters in each substring are <strong>unique</strong>. That is, no letter appears in a single substring more than <strong>once</strong>.</p>
|
||||
|
||||
<p>Return <em>the <strong>minimum</strong> number of substrings in such a partition.</em></p>
|
||||
|
||||
<p>Note that each character should belong to exactly one substring in a partition.</p>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Example 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> s = "abacaba"
|
||||
<strong>Output:</strong> 4
|
||||
<strong>Explanation:</strong>
|
||||
Two possible partitions are ("a","ba","cab","a") and ("ab","a","ca","ba").
|
||||
It can be shown that 4 is the minimum number of substrings needed.
|
||||
</pre>
|
||||
|
||||
<p><strong>Example 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> s = "ssssss"
|
||||
<strong>Output:</strong> 6
|
||||
<strong>Explanation:
|
||||
</strong>The only valid partition is ("s","s","s","s","s","s").
|
||||
</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>
|
@ -0,0 +1,37 @@
|
||||
<p>You are given a 2D integer array <code>intervals</code> where <code>intervals[i] = [left<sub>i</sub>, right<sub>i</sub>]</code> represents the <strong>inclusive</strong> interval <code>[left<sub>i</sub>, right<sub>i</sub>]</code>.</p>
|
||||
|
||||
<p>You have to divide the intervals into one or more <strong>groups</strong> such that each interval is in <strong>exactly</strong> one group, and no two intervals that are in the same group <strong>intersect</strong> each other.</p>
|
||||
|
||||
<p>Return <em>the <strong>minimum</strong> number of groups you need to make</em>.</p>
|
||||
|
||||
<p>Two intervals <strong>intersect</strong> if there is at least one common number between them. For example, the intervals <code>[1, 5]</code> and <code>[5, 8]</code> intersect.</p>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Example 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> intervals = [[5,10],[6,8],[1,5],[2,3],[1,10]]
|
||||
<strong>Output:</strong> 3
|
||||
<strong>Explanation:</strong> We can divide the intervals into the following groups:
|
||||
- Group 1: [1, 5], [6, 8].
|
||||
- Group 2: [2, 3], [5, 10].
|
||||
- Group 3: [1, 10].
|
||||
It can be proven that it is not possible to divide the intervals into fewer than 3 groups.
|
||||
</pre>
|
||||
|
||||
<p><strong>Example 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> intervals = [[1,3],[5,6],[8,10],[11,13]]
|
||||
<strong>Output:</strong> 1
|
||||
<strong>Explanation:</strong> None of the intervals overlap, so we can put all of them in one group.
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Constraints:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= intervals.length <= 10<sup>5</sup></code></li>
|
||||
<li><code>intervals[i].length == 2</code></li>
|
||||
<li><code>1 <= left<sub>i</sub> <= right<sub>i</sub> <= 10<sup>6</sup></code></li>
|
||||
</ul>
|
@ -0,0 +1,52 @@
|
||||
<p>You are given an integer array <code>nums</code> and an integer <code>k</code>.</p>
|
||||
|
||||
<p>Find the longest subsequence of <code>nums</code> that meets the following requirements:</p>
|
||||
|
||||
<ul>
|
||||
<li>The subsequence is <strong>strictly increasing</strong> and</li>
|
||||
<li>The difference between adjacent elements in the subsequence is <strong>at most</strong> <code>k</code>.</li>
|
||||
</ul>
|
||||
|
||||
<p>Return<em> the length of the <strong>longest</strong> <strong>subsequence</strong> that meets the requirements.</em></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,2,1,4,3,4,5,8,15], k = 3
|
||||
<strong>Output:</strong> 5
|
||||
<strong>Explanation:</strong>
|
||||
The longest subsequence that meets the requirements is [1,3,4,5,8].
|
||||
The subsequence has a length of 5, so we return 5.
|
||||
Note that the subsequence [1,3,4,5,8,15] does not meet the requirements because 15 - 8 = 7 is larger than 3.
|
||||
</pre>
|
||||
|
||||
<p><strong>Example 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> nums = [7,4,5,1,8,12,4,7], k = 5
|
||||
<strong>Output:</strong> 4
|
||||
<strong>Explanation:</strong>
|
||||
The longest subsequence that meets the requirements is [4,5,8,12].
|
||||
The subsequence has a length of 4, so we return 4.
|
||||
</pre>
|
||||
|
||||
<p><strong>Example 3:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> nums = [1,5], k = 1
|
||||
<strong>Output:</strong> 1
|
||||
<strong>Explanation:</strong>
|
||||
The longest subsequence that meets the requirements is [1].
|
||||
The subsequence has a length of 1, so we return 1.
|
||||
</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], k <= 10<sup>5</sup></code></li>
|
||||
</ul>
|
@ -0,0 +1,42 @@
|
||||
<p>You are given two integer arrays of equal length <code>target</code> and <code>arr</code>. In one step, you can select any <strong>non-empty subarray</strong> of <code>arr</code> and reverse it. You are allowed to make any number of steps.</p>
|
||||
|
||||
<p>Return <code>true</code> <em>if you can make </em><code>arr</code><em> equal to </em><code>target</code><em> or </em><code>false</code><em> otherwise</em>.</p>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Example 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> target = [1,2,3,4], arr = [2,4,1,3]
|
||||
<strong>Output:</strong> true
|
||||
<strong>Explanation:</strong> You can follow the next steps to convert arr to target:
|
||||
1- Reverse subarray [2,4,1], arr becomes [1,4,2,3]
|
||||
2- Reverse subarray [4,2], arr becomes [1,2,4,3]
|
||||
3- Reverse subarray [4,3], arr becomes [1,2,3,4]
|
||||
There are multiple ways to convert arr to target, this is not the only way to do so.
|
||||
</pre>
|
||||
|
||||
<p><strong>Example 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> target = [7], arr = [7]
|
||||
<strong>Output:</strong> true
|
||||
<strong>Explanation:</strong> arr is equal to target without any reverses.
|
||||
</pre>
|
||||
|
||||
<p><strong>Example 3:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> target = [3,7,9], arr = [3,7,11]
|
||||
<strong>Output:</strong> false
|
||||
<strong>Explanation:</strong> arr does not have value 9 and it can never be converted to target.
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Constraints:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>target.length == arr.length</code></li>
|
||||
<li><code>1 <= target.length <= 1000</code></li>
|
||||
<li><code>1 <= target[i] <= 1000</code></li>
|
||||
<li><code>1 <= arr[i] <= 1000</code></li>
|
||||
</ul>
|
File diff suppressed because it is too large
Load Diff
71
leetcode/originData/[no content]design-sql.json
Normal file
71
leetcode/originData/[no content]design-sql.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
206
leetcode/originData/longest-increasing-subsequence-ii.json
Normal file
206
leetcode/originData/longest-increasing-subsequence-ii.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
180
leetcode/originData/most-frequent-even-element.json
Normal file
180
leetcode/originData/most-frequent-even-element.json
Normal file
File diff suppressed because one or more lines are too long
180
leetcode/originData/optimal-partition-of-string.json
Normal file
180
leetcode/originData/optimal-partition-of-string.json
Normal file
File diff suppressed because one or more lines are too long
@ -0,0 +1,37 @@
|
||||
<p>You are given a 2D integer array <code>intervals</code> where <code>intervals[i] = [left<sub>i</sub>, right<sub>i</sub>]</code> represents the <strong>inclusive</strong> interval <code>[left<sub>i</sub>, right<sub>i</sub>]</code>.</p>
|
||||
|
||||
<p>You have to divide the intervals into one or more <strong>groups</strong> such that each interval is in <strong>exactly</strong> one group, and no two intervals that are in the same group <strong>intersect</strong> each other.</p>
|
||||
|
||||
<p>Return <em>the <strong>minimum</strong> number of groups you need to make</em>.</p>
|
||||
|
||||
<p>Two intervals <strong>intersect</strong> if there is at least one common number between them. For example, the intervals <code>[1, 5]</code> and <code>[5, 8]</code> intersect.</p>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Example 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> intervals = [[5,10],[6,8],[1,5],[2,3],[1,10]]
|
||||
<strong>Output:</strong> 3
|
||||
<strong>Explanation:</strong> We can divide the intervals into the following groups:
|
||||
- Group 1: [1, 5], [6, 8].
|
||||
- Group 2: [2, 3], [5, 10].
|
||||
- Group 3: [1, 10].
|
||||
It can be proven that it is not possible to divide the intervals into fewer than 3 groups.
|
||||
</pre>
|
||||
|
||||
<p><strong>Example 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> intervals = [[1,3],[5,6],[8,10],[11,13]]
|
||||
<strong>Output:</strong> 1
|
||||
<strong>Explanation:</strong> None of the intervals overlap, so we can put all of them in one group.
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Constraints:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= intervals.length <= 10<sup>5</sup></code></li>
|
||||
<li><code>intervals[i].length == 2</code></li>
|
||||
<li><code>1 <= left<sub>i</sub> <= right<sub>i</sub> <= 10<sup>6</sup></code></li>
|
||||
</ul>
|
52
leetcode/problem/longest-increasing-subsequence-ii.html
Normal file
52
leetcode/problem/longest-increasing-subsequence-ii.html
Normal file
@ -0,0 +1,52 @@
|
||||
<p>You are given an integer array <code>nums</code> and an integer <code>k</code>.</p>
|
||||
|
||||
<p>Find the longest subsequence of <code>nums</code> that meets the following requirements:</p>
|
||||
|
||||
<ul>
|
||||
<li>The subsequence is <strong>strictly increasing</strong> and</li>
|
||||
<li>The difference between adjacent elements in the subsequence is <strong>at most</strong> <code>k</code>.</li>
|
||||
</ul>
|
||||
|
||||
<p>Return<em> the length of the <strong>longest</strong> <strong>subsequence</strong> that meets the requirements.</em></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,2,1,4,3,4,5,8,15], k = 3
|
||||
<strong>Output:</strong> 5
|
||||
<strong>Explanation:</strong>
|
||||
The longest subsequence that meets the requirements is [1,3,4,5,8].
|
||||
The subsequence has a length of 5, so we return 5.
|
||||
Note that the subsequence [1,3,4,5,8,15] does not meet the requirements because 15 - 8 = 7 is larger than 3.
|
||||
</pre>
|
||||
|
||||
<p><strong>Example 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> nums = [7,4,5,1,8,12,4,7], k = 5
|
||||
<strong>Output:</strong> 4
|
||||
<strong>Explanation:</strong>
|
||||
The longest subsequence that meets the requirements is [4,5,8,12].
|
||||
The subsequence has a length of 4, so we return 4.
|
||||
</pre>
|
||||
|
||||
<p><strong>Example 3:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> nums = [1,5], k = 1
|
||||
<strong>Output:</strong> 1
|
||||
<strong>Explanation:</strong>
|
||||
The longest subsequence that meets the requirements is [1].
|
||||
The subsequence has a length of 1, so we return 1.
|
||||
</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], k <= 10<sup>5</sup></code></li>
|
||||
</ul>
|
@ -0,0 +1,42 @@
|
||||
<p>You are given two integer arrays of equal length <code>target</code> and <code>arr</code>. In one step, you can select any <strong>non-empty subarray</strong> of <code>arr</code> and reverse it. You are allowed to make any number of steps.</p>
|
||||
|
||||
<p>Return <code>true</code> <em>if you can make </em><code>arr</code><em> equal to </em><code>target</code><em> or </em><code>false</code><em> otherwise</em>.</p>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Example 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> target = [1,2,3,4], arr = [2,4,1,3]
|
||||
<strong>Output:</strong> true
|
||||
<strong>Explanation:</strong> You can follow the next steps to convert arr to target:
|
||||
1- Reverse subarray [2,4,1], arr becomes [1,4,2,3]
|
||||
2- Reverse subarray [4,2], arr becomes [1,2,4,3]
|
||||
3- Reverse subarray [4,3], arr becomes [1,2,3,4]
|
||||
There are multiple ways to convert arr to target, this is not the only way to do so.
|
||||
</pre>
|
||||
|
||||
<p><strong>Example 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> target = [7], arr = [7]
|
||||
<strong>Output:</strong> true
|
||||
<strong>Explanation:</strong> arr is equal to target without any reverses.
|
||||
</pre>
|
||||
|
||||
<p><strong>Example 3:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> target = [3,7,9], arr = [3,7,11]
|
||||
<strong>Output:</strong> false
|
||||
<strong>Explanation:</strong> arr does not have value 9 and it can never be converted to target.
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Constraints:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>target.length == arr.length</code></li>
|
||||
<li><code>1 <= target.length <= 1000</code></li>
|
||||
<li><code>1 <= target[i] <= 1000</code></li>
|
||||
<li><code>1 <= arr[i] <= 1000</code></li>
|
||||
</ul>
|
37
leetcode/problem/most-frequent-even-element.html
Normal file
37
leetcode/problem/most-frequent-even-element.html
Normal file
@ -0,0 +1,37 @@
|
||||
<p>Given an integer array <code>nums</code>, return <em>the most frequent even element</em>.</p>
|
||||
|
||||
<p>If there is a tie, return the <strong>smallest</strong> one. If there is no such element, return <code>-1</code>.</p>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Example 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> nums = [0,1,2,2,4,4,1]
|
||||
<strong>Output:</strong> 2
|
||||
<strong>Explanation:</strong>
|
||||
The even elements are 0, 2, and 4. Of these, 2 and 4 appear the most.
|
||||
We return the smallest one, which is 2.</pre>
|
||||
|
||||
<p><strong>Example 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> nums = [4,4,4,9,2,4]
|
||||
<strong>Output:</strong> 4
|
||||
<strong>Explanation:</strong> 4 is the even element appears the most.
|
||||
</pre>
|
||||
|
||||
<p><strong>Example 3:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> nums = [29,47,21,41,13,37,25,7]
|
||||
<strong>Output:</strong> -1
|
||||
<strong>Explanation:</strong> There is no even element.
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Constraints:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= nums.length <= 2000</code></li>
|
||||
<li><code>0 <= nums[i] <= 10<sup>5</sup></code></li>
|
||||
</ul>
|
33
leetcode/problem/optimal-partition-of-string.html
Normal file
33
leetcode/problem/optimal-partition-of-string.html
Normal file
@ -0,0 +1,33 @@
|
||||
<p>Given a string <code>s</code>, partition the string into one or more <strong>substrings</strong> such that the characters in each substring are <strong>unique</strong>. That is, no letter appears in a single substring more than <strong>once</strong>.</p>
|
||||
|
||||
<p>Return <em>the <strong>minimum</strong> number of substrings in such a partition.</em></p>
|
||||
|
||||
<p>Note that each character should belong to exactly one substring in a partition.</p>
|
||||
|
||||
<p> </p>
|
||||
<p><strong>Example 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> s = "abacaba"
|
||||
<strong>Output:</strong> 4
|
||||
<strong>Explanation:</strong>
|
||||
Two possible partitions are ("a","ba","cab","a") and ("ab","a","ca","ba").
|
||||
It can be shown that 4 is the minimum number of substrings needed.
|
||||
</pre>
|
||||
|
||||
<p><strong>Example 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>Input:</strong> s = "ssssss"
|
||||
<strong>Output:</strong> 6
|
||||
<strong>Explanation:
|
||||
</strong>The only valid partition is ("s","s","s","s","s","s").
|
||||
</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>
|
Loading…
Reference in New Issue
Block a user