mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-09-05 23:41:41 +08:00
update
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
<p>给你一个<strong>正整数</strong> <code>k</code> 。最初,你有一个数组 <code>nums = [1]</code> 。</p>
|
||||
|
||||
<p>你可以对数组执行以下 <strong>任意 </strong>操作 <strong>任意 </strong>次数(<strong>可能为零</strong>):</p>
|
||||
|
||||
<ul>
|
||||
<li>选择数组中的任何一个元素,然后将它的值<strong> 增加</strong> <code>1</code> 。</li>
|
||||
<li>复制数组中的任何一个元素,然后将它附加到数组的末尾。</li>
|
||||
</ul>
|
||||
|
||||
<p>返回使得最终数组元素之<strong> 和 </strong>大于或等于 <code>k</code> 所需的 <strong>最少 </strong>操作次数。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><strong>输入:</strong><span class="example-io">k = 11</span></p>
|
||||
|
||||
<p><strong>输出:</strong><span class="example-io">5</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<p>可以对数组 <code>nums = [1]</code> 执行以下操作:</p>
|
||||
|
||||
<ul>
|
||||
<li>将元素的值增加 <code>1</code> 三次。结果数组为 <code>nums = [4]</code> 。</li>
|
||||
<li>复制元素两次。结果数组为 <code>nums = [4,4,4]</code> 。</li>
|
||||
</ul>
|
||||
|
||||
<p>最终数组的和为 <code>4 + 4 + 4 = 12</code> ,大于等于 <code>k = 11</code> 。<br />
|
||||
执行的总操作次数为 <code>3 + 2 = 5</code> 。</p>
|
||||
</div>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><strong>输入:</strong><span class="example-io">k = 1</span></p>
|
||||
|
||||
<p><strong>输出:</strong><span class="example-io">0</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<p>原始数组的和已经大于等于 <code>1</code> ,因此不需要执行操作。</p>
|
||||
</div>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= k <= 10<sup>5</sup></code></li>
|
||||
</ul>
|
@@ -0,0 +1,57 @@
|
||||
<p>给你两个字符串数组 <code>wordsContainer</code> 和 <code>wordsQuery</code> 。</p>
|
||||
|
||||
<p>对于每个 <code>wordsQuery[i]</code> ,你需要从 <code>wordsContainer</code> 中找到一个与 <code>wordsQuery[i]</code> 有 <strong>最长公共后缀</strong> 的字符串。如果 <code>wordsContainer</code> 中有两个或者更多字符串有最长公共后缀,那么答案为长度<strong> 最短</strong> 的。如果有超过两个字符串有 <strong>相同</strong> 最短长度,那么答案为它们在 <code>wordsContainer</code> 中出现 <strong>更早</strong> 的一个。</p>
|
||||
|
||||
<p>请你返回一个整数数组<em> </em><code>ans</code> ,其中<em> </em><code>ans[i]</code>是<em> </em><code>wordsContainer</code>中与 <code>wordsQuery[i]</code> 有 <strong>最长公共后缀</strong> 字符串的下标。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><span class="example-io"><b>输入:</b>wordsContainer = ["abcd","bcd","xbcd"], wordsQuery = ["cd","bcd","xyz"]</span></p>
|
||||
|
||||
<p><span class="example-io"><b>输出:</b>[1,1,1]</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<p>我们分别来看每一个 <code>wordsQuery[i]</code> :</p>
|
||||
|
||||
<ul>
|
||||
<li>对于 <code>wordsQuery[0] = "cd"</code> ,<code>wordsContainer</code> 中有最长公共后缀 <code>"cd"</code> 的字符串下标分别为 0 ,1 和 2 。这些字符串中,答案是下标为 1 的字符串,因为它的长度为 3 ,是最短的字符串。</li>
|
||||
<li>对于 <code>wordsQuery[1] = "bcd"</code> ,<code>wordsContainer</code> 中有最长公共后缀 <code>"bcd"</code> 的字符串下标分别为 0 ,1 和 2 。这些字符串中,答案是下标为 1 的字符串,因为它的长度为 3 ,是最短的字符串。</li>
|
||||
<li>对于 <code>wordsQuery[2] = "xyz"</code> ,<code>wordsContainer</code> 中没有字符串跟它有公共后缀,所以最长公共后缀为 <code>""</code> ,下标为 0 ,1 和 2 的字符串都得到这一公共后缀。这些字符串中, 答案是下标为 1 的字符串,因为它的长度为 3 ,是最短的字符串。</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><span class="example-io"><b>输入:</b>wordsContainer = ["abcdefgh","poiuygh","ghghgh"], wordsQuery = ["gh","acbfgh","acbfegh"]</span></p>
|
||||
|
||||
<p><span class="example-io"><b>输出:</b>[2,0,2]</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<p>我们分别来看每一个 <code>wordsQuery[i]</code> :</p>
|
||||
|
||||
<ul>
|
||||
<li>对于 <code>wordsQuery[0] = "gh"</code> ,<code>wordsContainer</code> 中有最长公共后缀 <code>"gh"</code> 的字符串下标分别为 0 ,1 和 2 。这些字符串中,答案是下标为 2 的字符串,因为它的长度为 6 ,是最短的字符串。</li>
|
||||
<li>对于 <code>wordsQuery[1] = "acbfgh"</code> ,只有下标为 0 的字符串有最长公共后缀 <code>"fgh"</code> 。所以尽管下标为 2 的字符串是最短的字符串,但答案是 0 。</li>
|
||||
<li>对于 <code>wordsQuery[2] = "acbfegh"</code> ,<code>wordsContainer</code> 中有最长公共后缀 <code>"gh"</code> 的字符串下标分别为 0 ,1 和 2 。这些字符串中,答案是下标为 2 的字符串,因为它的长度为 6 ,是最短的字符串。</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= wordsContainer.length, wordsQuery.length <= 10<sup>4</sup></code></li>
|
||||
<li><code>1 <= wordsContainer[i].length <= 5 * 10<sup>3</sup></code></li>
|
||||
<li><code>1 <= wordsQuery[i].length <= 5 * 10<sup>3</sup></code></li>
|
||||
<li><code>wordsContainer[i]</code> 只包含小写英文字母。</li>
|
||||
<li><code>wordsQuery[i]</code> 只包含小写英文字母。</li>
|
||||
<li><code>wordsContainer[i].length</code> 的和至多为 <code>5 * 10<sup>5</sup></code> 。</li>
|
||||
<li><code>wordsQuery[i].length</code> 的和至多为 <code>5 * 10<sup>5</sup></code> 。</li>
|
||||
</ul>
|
@@ -0,0 +1,51 @@
|
||||
<p>你需要在一个集合里动态记录 ID 的出现频率。给你两个长度都为 <code>n</code> 的整数数组 <code>nums</code> 和 <code>freq</code> ,<code>nums</code> 中每一个元素表示一个 ID ,对应的 <code>freq</code> 中的元素表示这个 ID 在集合中此次操作后需要增加或者减少的数目。</p>
|
||||
|
||||
<ul>
|
||||
<li><strong>增加 ID 的数目:</strong>如果 <code>freq[i]</code> 是正数,那么 <code>freq[i]</code> 个 ID 为 <code>nums[i]</code> 的元素在第 <code>i</code> 步操作后会添加到集合中。</li>
|
||||
<li><strong>减少 ID 的数目:</strong>如果 <code>freq[i]</code> 是负数,那么 <code>-freq[i]</code> 个 ID 为 <code>nums[i]</code> 的元素在第 <code>i</code> 步操作后会从集合中删除。</li>
|
||||
</ul>
|
||||
|
||||
<p>请你返回一个长度为 <code>n</code> 的数组 <code>ans</code> ,其中 <code>ans[i]</code> 表示第 <code>i</code> 步操作后出现频率最高的 ID <strong>数目</strong> ,如果在某次操作后集合为空,那么 <code>ans[i]</code> 为 0 。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><span class="example-io"><b>输入:</b>nums = [2,3,2,1], freq = [3,2,-3,1]</span></p>
|
||||
|
||||
<p><span class="example-io"><b>输出:</b>[3,3,2,2]</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<p>第 0 步操作后,有 3 个 ID 为 2 的元素,所以 <code>ans[0] = 3</code> 。<br />
|
||||
第 1 步操作后,有 3 个 ID 为 2 的元素和 2 个 ID 为 3 的元素,所以 <code>ans[1] = 3</code> 。<br />
|
||||
第 2 步操作后,有 2 个 ID 为 3 的元素,所以 <code>ans[2] = 2</code> 。<br />
|
||||
第 3 步操作后,有 2 个 ID 为 3 的元素和 1 个 ID 为 1 的元素,所以 <code>ans[3] = 2</code> 。</p>
|
||||
</div>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><span class="example-io"><b>输入:</b>nums = [5,5,3], freq = [2,-2,1]</span></p>
|
||||
|
||||
<p><span class="example-io"><b>输出:</b>[2,0,1]</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<p>第 0 步操作后,有 2 个 ID 为 5 的元素,所以 <code>ans[0] = 2</code> 。<br />
|
||||
第 1 步操作后,集合中没有任何元素,所以 <code>ans[1] = 0</code> 。<br />
|
||||
第 2 步操作后,有 1 个 ID 为 3 的元素,所以 <code>ans[2] = 1</code> 。</p>
|
||||
</div>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= nums.length == freq.length <= 10<sup>5</sup></code></li>
|
||||
<li><code>1 <= nums[i] <= 10<sup>5</sup></code></li>
|
||||
<li><code>-10<sup>5</sup> <= freq[i] <= 10<sup>5</sup></code></li>
|
||||
<li><code>freq[i] != 0</code></li>
|
||||
<li>输入保证任何操作后,集合中的元素出现次数不会为负数。</li>
|
||||
</ul>
|
@@ -0,0 +1,37 @@
|
||||
<p>给你一个字符串 <code>s</code> ,请找出满足每个字符最多出现两次的最长子字符串,并返回该<span data-keyword="substring">子字符串</span>的<strong> 最大 </strong>长度。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><strong>输入:</strong> <span class="example-io">s = "bcbbbcba"</span></p>
|
||||
|
||||
<p><strong>输出:</strong> <span class="example-io">4</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<p>以下子字符串长度为 4,并且每个字符最多出现两次:<code>"bcbb<u>bcba</u>"</code>。</p>
|
||||
</div>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><strong>输入:</strong> <span class="example-io">s = "aaaa"</span></p>
|
||||
|
||||
<p><strong>输出:</strong> <span class="example-io">2</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<p>以下子字符串长度为 2,并且每个字符最多出现两次:<code>"<u>aa</u>aa"</code>。</p>
|
||||
</div>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul><!-- 字符串 s 的长度在 2 到 100 之间 -->
|
||||
<li><code>2 <= s.length <= 100</code></li>
|
||||
<!-- 字符串 s 仅包含小写英文字母 -->
|
||||
<li><code>s</code> 仅由小写英文字母组成。</li>
|
||||
</ul>
|
Reference in New Issue
Block a user