1
0
mirror of https://gitee.com/coder-xiaomo/leetcode-problemset synced 2025-09-05 07:21:40 +08:00
Code Issues Projects Releases Wiki Activity GitHub Gitee
This commit is contained in:
2022-09-17 21:23:12 +08:00
parent 8f6be18759
commit 95eae7766c
30 changed files with 14966 additions and 12092 deletions

View File

@@ -0,0 +1,36 @@
<p>给你一个整数数组 <code>nums</code> ,返回出现最频繁的偶数元素。</p>
<p>如果存在多个满足条件的元素,只需要返回 <strong>最小</strong> 的一个。如果不存在这样的元素,返回 <code>-1</code></p>
<p>&nbsp;</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>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>1 &lt;= nums.length &lt;= 2000</code></li>
<li><code>0 &lt;= nums[i] &lt;= 10<sup>5</sup></code></li>
</ul>

View File

@@ -0,0 +1,35 @@
<p>给你一个字符串 <code>s</code> ,请你将该字符串划分成一个或多个 <strong>子字符串</strong> ,并满足每个子字符串中的字符都是 <strong>唯一</strong> 的。也就是说,在单个子字符串中,字母的出现次数都不超过 <strong>一次</strong></p>
<p>满足题目要求的情况下,返回 <strong>最少</strong> 需要划分多少个子字符串<em></em></p>
<p>注意,划分后,原字符串中的每个字符都应该恰好属于一个子字符串。</p>
<p>&nbsp;</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>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>1 &lt;= s.length &lt;= 10<sup>5</sup></code></li>
<li><code>s</code> 仅由小写英文字母组成</li>
</ul>

View File

@@ -0,0 +1,38 @@
<p>给你一个二维整数数组&nbsp;<code>intervals</code>&nbsp;,其中&nbsp;<code>intervals[i] = [left<sub>i</sub>, right<sub>i</sub>]</code>&nbsp;表示 <strong></strong>&nbsp;区间&nbsp;<code>[left<sub>i</sub>, right<sub>i</sub>]</code>&nbsp;</p>
<p>你需要将&nbsp;<code>intervals</code> 划分为一个或者多个区间&nbsp;<strong></strong>&nbsp;,每个区间 <b></b>&nbsp;属于一个组,且同一个组中任意两个区间 <strong>不相交</strong>&nbsp;</p>
<p>请你返回 <strong>最少</strong>&nbsp;需要划分成多少个组。</p>
<p>如果两个区间覆盖的范围有重叠(即至少有一个公共数字),那么我们称这两个区间是 <strong>相交</strong>&nbsp;的。比方说区间&nbsp;<code>[1, 5]</code>&nbsp;<code>[5, 8]</code>&nbsp;相交。</p>
<p>&nbsp;</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>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>1 &lt;= intervals.length &lt;= 10<sup>5</sup></code></li>
<li><code>intervals[i].length == 2</code></li>
<li><code>1 &lt;= left<sub>i</sub> &lt;= right<sub>i</sub> &lt;= 10<sup>6</sup></code></li>
</ul>

View File

@@ -0,0 +1,51 @@
<p>给你一个整数数组&nbsp;<code>nums</code>&nbsp;和一个整数&nbsp;<code>k</code>&nbsp;</p>
<p>找到&nbsp;<code>nums</code>&nbsp;中满足以下要求的最长子序列:</p>
<ul>
<li>子序列 <strong>严格递增</strong></li>
<li>子序列中相邻元素的差值 <strong>不超过</strong>&nbsp;<code>k</code>&nbsp;</li>
</ul>
<p>请你返回满足上述要求的 <strong>最长子序列</strong>&nbsp;的长度。</p>
<p><strong>子序列</strong>&nbsp;是从一个数组中删除部分元素后,剩余元素不改变顺序得到的数组。</p>
<p>&nbsp;</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>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>1 &lt;= nums.length &lt;= 10<sup>5</sup></code></li>
<li><code>1 &lt;= nums[i], k &lt;= 10<sup>5</sup></code></li>
</ul>

View File

@@ -0,0 +1,44 @@
<p>给你两个长度相同的整数数组&nbsp;<code>target</code>&nbsp;&nbsp;<code>arr</code>&nbsp;。每一步中,你可以选择&nbsp;<code>arr</code>&nbsp;的任意 <strong>非空子数组</strong>&nbsp;并将它翻转。你可以执行此过程任意次。</p>
<p><em>如果你能让 <code>arr</code>&nbsp;变得与 <code>target</code>&nbsp;相同,返回 True否则返回 False 。</em></p>
<p>&nbsp;</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>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>target.length == arr.length</code></li>
<li><code>1 &lt;= target.length &lt;= 1000</code></li>
<li><code>1 &lt;= target[i] &lt;= 1000</code></li>
<li><code>1 &lt;= arr[i] &lt;= 1000</code></li>
</ul>