mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-09-04 23:11:41 +08:00
update
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
<p>给你两个整数 <code>n</code> 和 <code>k</code> 。</p>
|
||||
|
||||
<p>对于一个由 <strong>不同</strong> 正整数组成的数组,如果其中不存在任何求和等于 k 的不同元素对,则称其为 <strong>k-avoiding</strong> 数组。</p>
|
||||
|
||||
<p>返回长度为 <code>n</code> 的 <strong>k-avoiding</strong> 数组的可能的最小总和。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>n = 5, k = 4
|
||||
<strong>输出:</strong>18
|
||||
<strong>解释:</strong>设若 k-avoiding 数组为 [1,2,4,5,6] ,其元素总和为 18 。
|
||||
可以证明不存在总和小于 18 的 k-avoiding 数组。
|
||||
</pre>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>n = 2, k = 6
|
||||
<strong>输出:</strong>3
|
||||
<strong>解释:</strong>可以构造数组 [1,2] ,其元素总和为 3 。
|
||||
可以证明不存在总和小于 3 的 k-avoiding 数组。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= n, k <= 50</code></li>
|
||||
</ul>
|
@@ -0,0 +1,45 @@
|
||||
<p>给你一个字符串数组 <code>words</code> 和一个字符串 <code>s</code> ,请你判断 <code>s</code> 是不是 <code>words</code> 的 <strong>首字母缩略词</strong> 。</p>
|
||||
|
||||
<p>如果可以按顺序串联 <code>words</code> 中每个字符串的第一个字符形成字符串 <code>s</code> ,则认为 <code>s</code> 是 <code>words</code> 的首字母缩略词。例如,<code>"ab"</code> 可以由 <code>["apple", "banana"]</code> 形成,但是无法从 <code>["bear", "aardvark"]</code> 形成。</p>
|
||||
|
||||
<p>如果 <code>s</code> 是 <code>words</code> 的首字母缩略词,返回 <code>true</code><em> </em>;否则,返回<em> </em><code>false</code> 。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>words = ["alice","bob","charlie"], s = "abc"
|
||||
<strong>输出:</strong>true
|
||||
<strong>解释:</strong>words 中 "alice"、"bob" 和 "charlie" 的第一个字符分别是 'a'、'b' 和 'c'。因此,s = "abc" 是首字母缩略词。
|
||||
</pre>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>words = ["an","apple"], s = "a"
|
||||
<strong>输出:</strong>false
|
||||
<strong>解释:</strong>words 中 "an" 和 "apple" 的第一个字符分别是 'a' 和 'a'。
|
||||
串联这些字符形成的首字母缩略词是 "aa" 。
|
||||
因此,s = "a" 不是首字母缩略词。
|
||||
</pre>
|
||||
|
||||
<p><strong class="example">示例 3:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>words = ["never","gonna","give","up","on","you"], s = "ngguoy"
|
||||
<strong>输出:</strong>true
|
||||
<strong>解释:</strong>串联数组 words 中每个字符串的第一个字符,得到字符串 "ngguoy" 。
|
||||
因此,s = "ngguoy" 是首字母缩略词。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= words.length <= 100</code></li>
|
||||
<li><code>1 <= words[i].length <= 10</code></li>
|
||||
<li><code>1 <= s.length <= 100</code></li>
|
||||
<li><code>words[i]</code> 和 <code>s</code> 由小写英文字母组成</li>
|
||||
</ul>
|
@@ -0,0 +1,65 @@
|
||||
<p>给你一个下标从 <strong>0</strong> 开始长度为 <code>n</code> 的整数数组 <code>nums</code> 。<br />
|
||||
<br />
|
||||
从 <code>0</code> 到 <code>n - 1</code> 的数字被分为编号从 <code>1</code> 到 <code>3</code> 的三个组,数字 <code>i</code> 属于组 <code>nums[i]</code> 。注意,有的组可能是 <strong>空的</strong> 。<br />
|
||||
<br />
|
||||
你可以执行以下操作任意次:</p>
|
||||
|
||||
<ul>
|
||||
<li>选择数字 <code>x</code> 并改变它的组。更正式的,你可以将 <code>nums[x]</code> 改为数字 <code>1</code> 到 <code>3</code> 中的任意一个。</li>
|
||||
</ul>
|
||||
|
||||
<p>你将按照以下过程构建一个新的数组 <code>res</code> :</p>
|
||||
|
||||
<ol>
|
||||
<li>将每个组中的数字分别排序。</li>
|
||||
<li>将组 <code>1</code> ,<code>2</code> 和 <code>3</code> 中的元素 <strong>依次</strong> 连接以得到 <code>res</code> 。</li>
|
||||
</ol>
|
||||
|
||||
<p>如果得到的 <code>res</code> 是 <strong>非递减</strong>顺序的,那么我们称数组 <code>nums</code> 是 <strong>美丽数组</strong> 。</p>
|
||||
|
||||
<p>请你返回将<em> </em><code>nums</code> 变为 <strong>美丽数组</strong> 需要的最少步数。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<b>输入:</b>nums = [2,1,3,2,1]
|
||||
<b>输出:</b>3
|
||||
<b>解释:</b>以下三步操作是最优方案:
|
||||
1. 将 nums[0] 变为 1 。
|
||||
2. 将 nums[2] 变为 1 。
|
||||
3. 将 nums[3] 变为 1 。
|
||||
执行以上操作后,将每组中的数字排序,组 1 为 [0,1,2,3,4] ,组 2 和组 3 都为空。所以 res 等于 [0,1,2,3,4] ,它是非递减顺序的。
|
||||
三步操作是最少需要的步数。
|
||||
</pre>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<b>输入:</b>nums = [1,3,2,1,3,3]
|
||||
<b>输出:</b>2
|
||||
<b>解释:</b>以下两步操作是最优方案:
|
||||
1. 将 nums[1] 变为 1 。
|
||||
2. 将 nums[2] 变为 1 。
|
||||
执行以上操作后,将每组中的数字排序,组 1 为 [0,1,2,3] ,组 2 为空,组 3 为 [4,5] 。所以 res 等于 [0,1,2,3,4,5] ,它是非递减顺序的。
|
||||
两步操作是最少需要的步数。
|
||||
</pre>
|
||||
|
||||
<p><strong class="example">示例 3:</strong></p>
|
||||
|
||||
<pre>
|
||||
<b>输入:</b>nums = [2,2,2,2,3,3]
|
||||
<b>输出:</b>0
|
||||
<b>解释:</b>不需要执行任何操作。
|
||||
组 1 为空,组 2 为 [0,1,2,3] ,组 3 为 [4,5] 。所以 res 等于 [0,1,2,3,4,5] ,它是非递减顺序的。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= nums.length <= 100</code></li>
|
||||
<li><code>1 <= nums[i] <= 3</code></li>
|
||||
</ul>
|
@@ -0,0 +1,46 @@
|
||||
<p>给你一个下标从 <strong>0</strong> 开始的字符串 <code>str1</code> 和 <code>str2</code> 。</p>
|
||||
|
||||
<p>一次操作中,你选择 <code>str1</code> 中的若干下标。对于选中的每一个下标 <code>i</code> ,你将 <code>str1[i]</code> <strong>循环</strong> 递增,变成下一个字符。也就是说 <code>'a'</code> 变成 <code>'b'</code> ,<code>'b'</code> 变成 <code>'c'</code> ,以此类推,<code>'z'</code> 变成 <code>'a'</code> 。</p>
|
||||
|
||||
<p>如果执行以上操作 <strong>至多一次</strong> ,可以让 <code>str2</code> 成为 <code>str1</code> 的子序列,请你返回 <code>true</code> ,否则返回 <code>false</code> 。</p>
|
||||
|
||||
<p><b>注意:</b>一个字符串的子序列指的是从原字符串中删除一些(可以一个字符也不删)字符后,剩下字符按照原本先后顺序组成的新字符串。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<b>输入:</b>str1 = "abc", str2 = "ad"
|
||||
<b>输出:</b>true
|
||||
<b>解释:</b>选择 str1 中的下标 2 。
|
||||
将 str1[2] 循环递增,得到 'd' 。
|
||||
因此,str1 变成 "abd" 且 str2 现在是一个子序列。所以返回 true 。</pre>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<b>输入:</b>str1 = "zc", str2 = "ad"
|
||||
<b>输出:</b>true
|
||||
<b>解释:</b>选择 str1 中的下标 0 和 1 。
|
||||
将 str1[0] 循环递增得到 'a' 。
|
||||
将 str1[1] 循环递增得到 'd' 。
|
||||
因此,str1 变成 "ad" 且 str2 现在是一个子序列。所以返回 true 。</pre>
|
||||
|
||||
<p><strong class="example">示例 3:</strong></p>
|
||||
|
||||
<pre>
|
||||
<b>输入:</b>str1 = "ab", str2 = "d"
|
||||
<b>输出:</b>false
|
||||
<b>解释:</b>这个例子中,没法在执行一次操作的前提下,将 str2 变为 str1 的子序列。
|
||||
所以返回 false 。</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= str1.length <= 10<sup>5</sup></code></li>
|
||||
<li><code>1 <= str2.length <= 10<sup>5</sup></code></li>
|
||||
<li><code>str1</code> 和 <code>str2</code> 只包含小写英文字母。</li>
|
||||
</ul>
|
@@ -0,0 +1,41 @@
|
||||
<p>给你一个下标从 <strong>0</strong> 开始的整数数组 <code>nums</code> 和一个整数 <code>k</code> 。</p>
|
||||
|
||||
<p>如果子数组中所有元素都相等,则认为子数组是一个 <strong>等值子数组</strong> 。注意,空数组是 <strong>等值子数组</strong> 。</p>
|
||||
|
||||
<p>从 <code>nums</code> 中删除最多 <code>k</code> 个元素后,返回可能的最长等值子数组的长度。</p>
|
||||
|
||||
<p><strong>子数组</strong> 是数组中一个连续且可能为空的元素序列。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>nums = [1,3,2,3,1,3], k = 3
|
||||
<strong>输出:</strong>3
|
||||
<strong>解释:</strong>最优的方案是删除下标 2 和下标 4 的元素。
|
||||
删除后,nums 等于 [1, 3, 3, 3] 。
|
||||
最长等值子数组从 i = 1 开始到 j = 3 结束,长度等于 3 。
|
||||
可以证明无法创建更长的等值子数组。
|
||||
</pre>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>nums = [1,1,2,2,1,1], k = 2
|
||||
<strong>输出:</strong>4
|
||||
<strong>解释:</strong>最优的方案是删除下标 2 和下标 3 的元素。
|
||||
删除后,nums 等于 [1, 1, 1, 1] 。
|
||||
数组自身就是等值子数组,长度等于 4 。
|
||||
可以证明无法创建更长的等值子数组。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= nums.length <= 10<sup>5</sup></code></li>
|
||||
<li><code>1 <= nums[i] <= nums.length</code></li>
|
||||
<li><code>0 <= k <= nums.length</code></li>
|
||||
</ul>
|
@@ -0,0 +1,51 @@
|
||||
<p>给你一个长度为 <code>n</code> 的正整数数组 <code>nums</code> 和一个整数 <code>k</code> 。</p>
|
||||
|
||||
<p>一开始,你的分数为 <code>1</code> 。你可以进行以下操作至多 <code>k</code> 次,目标是使你的分数最大:</p>
|
||||
|
||||
<ul>
|
||||
<li>选择一个之前没有选过的 <strong>非空</strong> 子数组 <code>nums[l, ..., r]</code> 。</li>
|
||||
<li>从 <code>nums[l, ..., r]</code> 里面选择一个 <strong>质数分数</strong> 最高的元素 <code>x</code> 。如果多个元素质数分数相同且最高,选择下标最小的一个。</li>
|
||||
<li>将你的分数乘以 <code>x</code> 。</li>
|
||||
</ul>
|
||||
|
||||
<p><code>nums[l, ..., r]</code> 表示 <code>nums</code> 中起始下标为 <code>l</code> ,结束下标为 <code>r</code> 的子数组,两个端点都包含。</p>
|
||||
|
||||
<p>一个整数的 <strong>质数分数</strong> 等于 <code>x</code> 不同质因子的数目。比方说, <code>300</code> 的质数分数为 <code>3</code> ,因为 <code>300 = 2 * 2 * 3 * 5 * 5</code> 。</p>
|
||||
|
||||
<p>请你返回进行至多 <code>k</code> 次操作后,可以得到的 <strong>最大分数</strong> 。</p>
|
||||
|
||||
<p>由于答案可能很大,请你将结果对 <code>10<sup>9 </sup>+ 7</code> 取余后返回。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<b>输入:</b>nums = [8,3,9,3,8], k = 2
|
||||
<b>输出:</b>81
|
||||
<b>解释:</b>进行以下操作可以得到分数 81 :
|
||||
- 选择子数组 nums[2, ..., 2] 。nums[2] 是子数组中唯一的元素。所以我们将分数乘以 nums[2] ,分数变为 1 * 9 = 9 。
|
||||
- 选择子数组 nums[2, ..., 3] 。nums[2] 和 nums[3] 质数分数都为 1 ,但是 nums[2] 下标更小。所以我们将分数乘以 nums[2] ,分数变为 9 * 9 = 81 。
|
||||
81 是可以得到的最高得分。</pre>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<b>输入:</b>nums = [19,12,14,6,10,18], k = 3
|
||||
<b>输出:</b>4788
|
||||
<b>解释:</b>进行以下操作可以得到分数 4788 :
|
||||
- 选择子数组 nums[0, ..., 0] 。nums[0] 是子数组中唯一的元素。所以我们将分数乘以 nums[0] ,分数变为 1 * 19 = 19 。
|
||||
- 选择子数组 nums[5, ..., 5] 。nums[5] 是子数组中唯一的元素。所以我们将分数乘以 nums[5] ,分数变为 19 * 18 = 342 。
|
||||
- 选择子数组 nums[2, ..., 3] 。nums[2] 和 nums[3] 质数分数都为 2,但是 nums[2] 下标更小。所以我们将分数乘以 nums[2] ,分数变为 342 * 14 = 4788 。
|
||||
4788 是可以得到的最高的分。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= nums.length == n <= 10<sup>5</sup></code></li>
|
||||
<li><code>1 <= nums[i] <= 10<sup>5</sup></code></li>
|
||||
<li><code>1 <= k <= min(n * (n + 1) / 2, 10<sup>9</sup>)</code></li>
|
||||
</ul>
|
@@ -0,0 +1,30 @@
|
||||
<p>给你一个下标从 <strong>0</strong> 开始的整数数组 <code>nums</code> 。请你从 <code>nums</code> 中找出和 <strong>最大</strong> 的一对数,且这两个数数位上最大的数字相等。</p>
|
||||
|
||||
<p>返回最大和,如果不存在满足题意的数字对,返回 <code>-1</code><em> 。</em></p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre><strong>输入:</strong>nums = [51,71,17,24,42]
|
||||
<strong>输出:</strong>88
|
||||
<strong>解释:</strong>
|
||||
i = 1 和 j = 2 ,nums[i] 和 nums[j] 数位上最大的数字相等,且这一对的总和 71 + 17 = 88 。
|
||||
i = 3 和 j = 4 ,nums[i] 和 nums[j] 数位上最大的数字相等,且这一对的总和 24 + 42 = 66 。
|
||||
可以证明不存在其他数对满足数位上最大的数字相等,所以答案是 88 。</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre><strong>输入:</strong>nums = [1,2,3,4]
|
||||
<strong>输出:</strong>-1
|
||||
<strong>解释:</strong>不存在数对满足数位上最大的数字相等。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>2 <= nums.length <= 100</code></li>
|
||||
<li><code>1 <= nums[i] <= 10<sup>4</sup></code></li>
|
||||
</ul>
|
@@ -0,0 +1,41 @@
|
||||
给你一个下标从 <strong>0</strong> 开始长度为 <code>n</code> 的整数数组 <code>nums</code> 和一个整数 <code>target</code> ,请你返回满足 <code>0 <= i < j < n</code> 且 <code>nums[i] + nums[j] < target</code> 的下标对 <code>(i, j)</code> 的数目。
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<b>输入:</b>nums = [-1,1,2,3,1], target = 2
|
||||
<b>输出:</b>3
|
||||
<b>解释:</b>总共有 3 个下标对满足题目描述:
|
||||
- (0, 1) ,0 < 1 且 nums[0] + nums[1] = 0 < target
|
||||
- (0, 2) ,0 < 2 且 nums[0] + nums[2] = 1 < target
|
||||
- (0, 4) ,0 < 4 且 nums[0] + nums[4] = 0 < target
|
||||
注意 (0, 3) 不计入答案因为 nums[0] + nums[3] 不是严格小于 target 。
|
||||
</pre>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<b>输入:</b>nums = [-6,2,5,-2,-7,-1,3], target = -2
|
||||
<b>输出:</b>10
|
||||
<b>解释:</b>总共有 10 个下标对满足题目描述:
|
||||
- (0, 1) ,0 < 1 且 nums[0] + nums[1] = -4 < target
|
||||
- (0, 3) ,0 < 3 且 nums[0] + nums[3] = -8 < target
|
||||
- (0, 4) ,0 < 4 且 nums[0] + nums[4] = -13 < target
|
||||
- (0, 5) ,0 < 5 且 nums[0] + nums[5] = -7 < target
|
||||
- (0, 6) ,0 < 6 且 nums[0] + nums[6] = -3 < target
|
||||
- (1, 4) ,1 < 4 且 nums[1] + nums[4] = -5 < target
|
||||
- (3, 4) ,3 < 4 且 nums[3] + nums[4] = -9 < target
|
||||
- (3, 5) ,3 < 5 且 nums[3] + nums[5] = -3 < target
|
||||
- (4, 5) ,4 < 5 且 nums[4] + nums[5] = -8 < target
|
||||
- (4, 6) ,4 < 6 且 nums[4] + nums[6] = -4 < target
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= nums.length == n <= 50</code></li>
|
||||
<li><code>-50 <= nums[i], target <= 50</code></li>
|
||||
</ul>
|
@@ -0,0 +1,30 @@
|
||||
<p>给你一个 <strong>非空</strong> 链表的头节点 <code>head</code> ,表示一个不含前导零的非负数整数。</p>
|
||||
|
||||
<p>将链表 <strong>翻倍</strong> 后,返回头节点<em> </em><code>head</code><em> </em>。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
<img alt="" src="https://assets.leetcode.com/uploads/2023/05/28/example.png" style="width: 401px; height: 81px;" />
|
||||
<pre>
|
||||
<strong>输入:</strong>head = [1,8,9]
|
||||
<strong>输出:</strong>[3,7,8]
|
||||
<strong>解释:</strong>上图中给出的链表,表示数字 189 。返回的链表表示数字 189 * 2 = 378 。</pre>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
<img alt="" src="https://assets.leetcode.com/uploads/2023/05/28/example2.png" style="width: 401px; height: 81px;" />
|
||||
<pre>
|
||||
<strong>输入:</strong>head = [9,9,9]
|
||||
<strong>输出:</strong>[1,9,9,8]
|
||||
<strong>解释:</strong>上图中给出的链表,表示数字 999 。返回的链表表示数字 999 * 2 = 1998 。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li>链表中节点的数目在范围 <code>[1, 10<sup>4</sup>]</code> 内</li>
|
||||
<li><font face="monospace"><code>0 <= Node.val <= 9</code></font></li>
|
||||
<li>生成的输入满足:链表表示一个不含前导零的数字,除了数字 <code>0</code> 本身。</li>
|
||||
</ul>
|
@@ -0,0 +1,54 @@
|
||||
<p>给你正整数 <code>low</code> ,<code>high</code> 和 <code>k</code> 。</p>
|
||||
|
||||
<p>如果一个数满足以下两个条件,那么它是 <strong>美丽的</strong> :</p>
|
||||
|
||||
<ul>
|
||||
<li>偶数数位的数目与奇数数位的数目相同。</li>
|
||||
<li>这个整数可以被 <code>k</code> 整除。</li>
|
||||
</ul>
|
||||
|
||||
<p>请你返回范围 <code>[low, high]</code> 中美丽整数的数目。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<b>输入:</b>low = 10, high = 20, k = 3
|
||||
<b>输出:</b>2
|
||||
<b>解释:</b>给定范围中有 2 个美丽数字:[12,18]
|
||||
- 12 是美丽整数,因为它有 1 个奇数数位和 1 个偶数数位,而且可以被 k = 3 整除。
|
||||
- 18 是美丽整数,因为它有 1 个奇数数位和 1 个偶数数位,而且可以被 k = 3 整除。
|
||||
以下是一些不是美丽整数的例子:
|
||||
- 16 不是美丽整数,因为它不能被 k = 3 整除。
|
||||
- 15 不是美丽整数,因为它的奇数数位和偶数数位的数目不相等。
|
||||
给定范围内总共有 2 个美丽整数。
|
||||
</pre>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<b>输入:</b>low = 1, high = 10, k = 1
|
||||
<b>输出:</b>1
|
||||
<b>解释:</b>给定范围中有 1 个美丽数字:[10]
|
||||
- 10 是美丽整数,因为它有 1 个奇数数位和 1 个偶数数位,而且可以被 k = 1 整除。
|
||||
给定范围内总共有 1 个美丽整数。
|
||||
</pre>
|
||||
|
||||
<p><strong class="example">示例 3:</strong></p>
|
||||
|
||||
<pre>
|
||||
<b>输入:</b>low = 5, high = 5, k = 2
|
||||
<b>输出:</b>0
|
||||
<b>解释:</b>给定范围中有 0 个美丽数字。
|
||||
- 5 不是美丽整数,因为它的奇数数位和偶数数位的数目不相等。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>0 < low <= high <= 10<sup>9</sup></code></li>
|
||||
<li><code>0 < k <= 20</code></li>
|
||||
</ul>
|
@@ -0,0 +1,42 @@
|
||||
<p>给你一个整数 <code>n</code> 表示数轴上的房屋数量,编号从 <code>0</code> 到 <code>n - 1</code> 。</p>
|
||||
|
||||
<p>另给你一个二维整数数组 <code>offers</code> ,其中 <code>offers[i] = [start<sub>i</sub>, end<sub>i</sub>, gold<sub>i</sub>]</code> 表示第 <code>i</code> 个买家想要以 <code>gold<sub>i</sub></code> 枚金币的价格购买从 <code>start<sub>i</sub></code> 到 <code>end<sub>i</sub></code> 的所有房屋。</p>
|
||||
|
||||
<p>作为一名销售,你需要有策略地选择并销售房屋使自己的收入最大化。</p>
|
||||
|
||||
<p>返回你可以赚取的金币的最大数目。</p>
|
||||
|
||||
<p><strong>注意</strong> 同一所房屋不能卖给不同的买家,并且允许保留一些房屋不进行出售。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>n = 5, offers = [[0,0,1],[0,2,2],[1,3,2]]
|
||||
<strong>输出:</strong>3
|
||||
<strong>解释:</strong>
|
||||
有 5 所房屋,编号从 0 到 4 ,共有 3 个购买要约。
|
||||
将位于 [0,0] 范围内的房屋以 1 金币的价格出售给第 1 位买家,并将位于 [1,3] 范围内的房屋以 2 金币的价格出售给第 3 位买家。
|
||||
可以证明我们最多只能获得 3 枚金币。</pre>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>n = 5, offers = [[0,0,1],[0,2,10],[1,3,2]]
|
||||
<strong>输出:</strong>10
|
||||
<strong>解释:</strong>有 5 所房屋,编号从 0 到 4 ,共有 3 个购买要约。
|
||||
将位于 [0,2] 范围内的房屋以 10 金币的价格出售给第 2 位买家。
|
||||
可以证明我们最多只能获得 10 枚金币。</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= n <= 10<sup>5</sup></code></li>
|
||||
<li><code>1 <= offers.length <= 10<sup>5</sup></code></li>
|
||||
<li><code>offers[i].length == 3</code></li>
|
||||
<li><code>0 <= start<sub>i</sub> <= end<sub>i</sub> <= n - 1</code></li>
|
||||
<li><code>1 <= gold<sub>i</sub> <= 10<sup>3</sup></code></li>
|
||||
</ul>
|
@@ -0,0 +1,49 @@
|
||||
<p>给你一个下标从 <strong>0</strong> 开始的整数数组 <code>nums</code> 和一个整数 <code>x</code> 。</p>
|
||||
|
||||
<p>请你找到数组中下标距离至少为 <code>x</code> 的两个元素的 <strong>差值绝对值</strong> 的 <strong>最小值</strong> 。</p>
|
||||
|
||||
<p>换言之,请你找到两个下标 <code>i</code> 和 <code>j</code> ,满足 <code>abs(i - j) >= x</code> 且 <code>abs(nums[i] - nums[j])</code> 的值最小。</p>
|
||||
|
||||
<p>请你返回一个整数,表示下标距离至少为 <code>x</code> 的两个元素之间的差值绝对值的 <strong>最小值</strong> 。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><b>示例 1:</b></p>
|
||||
|
||||
<pre>
|
||||
<b>输入:</b>nums = [4,3,2,4], x = 2
|
||||
<b>输出:</b>0
|
||||
<b>解释:</b>我们选择 nums[0] = 4 和 nums[3] = 4 。
|
||||
它们下标距离满足至少为 2 ,差值绝对值为最小值 0 。
|
||||
0 是最优解。
|
||||
</pre>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<b>输入:</b>nums = [5,3,2,10,15], x = 1
|
||||
<b>输出:</b>1
|
||||
<b>解释:</b>我们选择 nums[1] = 3 和 nums[2] = 2 。
|
||||
它们下标距离满足至少为 1 ,差值绝对值为最小值 1 。
|
||||
1 是最优解。
|
||||
</pre>
|
||||
|
||||
<p><strong class="example">示例 3:</strong></p>
|
||||
|
||||
<pre>
|
||||
<b>输入:</b>nums = [1,2,3,4], x = 3
|
||||
<b>输出:</b>3
|
||||
<strong>解释:</strong>我们选择 nums[0] = 1 和 nums[3] = 4 。
|
||||
它们下标距离满足至少为 3 ,差值绝对值为最小值 3 。
|
||||
3 是最优解。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= nums.length <= 10<sup>5</sup></code></li>
|
||||
<li><code>1 <= nums[i] <= 10<sup>9</sup></code></li>
|
||||
<li><code>0 <= x < nums.length</code></li>
|
||||
</ul>
|
Reference in New Issue
Block a user