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,45 @@
|
||||
<p>Alice 和 Bob 在一个长满鲜花的环形草地玩一个回合制游戏。环形的草地上有一些鲜花,Alice 到 Bob 之间顺时针有 <code>x</code> 朵鲜花,逆时针有 <code>y</code> 朵鲜花。</p>
|
||||
|
||||
<p>游戏过程如下:</p>
|
||||
|
||||
<ol>
|
||||
<li>Alice 先行动。</li>
|
||||
<li>每一次行动中,当前玩家必须选择顺时针或者逆时针,然后在这个方向上摘一朵鲜花。</li>
|
||||
<li>一次行动结束后,如果所有鲜花都被摘完了,那么 <strong>当前</strong> 玩家抓住对手并赢得游戏的胜利。</li>
|
||||
</ol>
|
||||
|
||||
<p>给你两个整数 <code>n</code> 和 <code>m</code> ,你的任务是求出满足以下条件的所有 <code>(x, y)</code> 对:</p>
|
||||
|
||||
<ul>
|
||||
<li>按照上述规则,Alice 必须赢得游戏。</li>
|
||||
<li>Alice 顺时针方向上的鲜花数目 <code>x</code> 必须在区间 <code>[1,n]</code> 之间。</li>
|
||||
<li>Alice 逆时针方向上的鲜花数目 <code>y</code> 必须在区间 <code>[1,m]</code> 之间。</li>
|
||||
</ul>
|
||||
|
||||
<p>请你返回满足题目描述的数对 <code>(x, y)</code> 的数目。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<b>输入:</b>n = 3, m = 2
|
||||
<b>输出:</b>3
|
||||
<b>解释:</b>以下数对满足题目要求:(1,2) ,(3,2) ,(2,1) 。
|
||||
</pre>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<b>输入:</b>n = 1, m = 1
|
||||
<b>输出:</b>0
|
||||
<b>解释:</b>没有数对满足题目要求。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= n, m <= 10<sup>5</sup></code></li>
|
||||
</ul>
|
@@ -0,0 +1,36 @@
|
||||
<p>给你一个<strong> 正整数 </strong>数组 <code>nums</code> 。</p>
|
||||
|
||||
<p>你需要从数组中选出一个满足下述条件的<span data-keyword="subset">子集</span>:</p>
|
||||
|
||||
<ul>
|
||||
<li>你可以将选中的元素放置在一个下标从 <strong>0</strong> 开始的数组中,并使其遵循以下模式:<code>[x, x<sup>2</sup>, x<sup>4</sup>, ..., x<sup>k/2</sup>, x<sup>k</sup>, x<sup>k/2</sup>, ..., x<sup>4</sup>, x<sup>2</sup>, x]</code>(<strong>注意</strong>,<code>k</code> 可以是任何 <strong>非负</strong> 的 2 的幂)。例如,<code>[2, 4, 16, 4, 2]</code> 和 <code>[3, 9, 3]</code> 都符合这一模式,而 <code>[2, 4, 8, 4, 2]</code> 则不符合。</li>
|
||||
</ul>
|
||||
|
||||
<p>返回满足这些条件的子集中,元素数量的 <strong>最大值 </strong><em>。</em></p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>nums = [5,4,1,2,2]
|
||||
<strong>输出:</strong>3
|
||||
<strong>解释:</strong>选择子集 {4,2,2} ,将其放在数组 [2,4,2] 中,它遵循该模式,且 2<sup>2</sup> == 4 。因此答案是 3 。
|
||||
</pre>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>nums = [1,3,2,4]
|
||||
<strong>输出:</strong>1
|
||||
<strong>解释:</strong>选择子集 {1},将其放在数组 [1] 中,它遵循该模式。因此答案是 1 。注意我们也可以选择子集 {2} 、{4} 或 {3} ,可能存在多个子集都能得到相同的答案。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>2 <= nums.length <= 10<sup>5</sup></code></li>
|
||||
<li><code>1 <= nums[i] <= 10<sup>9</sup></code></li>
|
||||
</ul>
|
@@ -0,0 +1,37 @@
|
||||
<p>给你一个下标从<strong> 0</strong> 开始的字符串 <code>s</code> ,该字符串由用户输入。按键变更的定义是:使用与上次使用的按键不同的键。例如 <code>s = "ab"</code> 表示按键变更一次,而 <code>s = "bBBb"</code> 不存在按键变更。</p>
|
||||
|
||||
<p>返回用户输入过程中按键变更的次数。</p>
|
||||
|
||||
<p><strong>注意:</strong><code>shift</code> 或 <code>caps lock</code> 等修饰键不计入按键变更,也就是说,如果用户先输入字母 <code>'a'</code> 然后输入字母 <code>'A'</code> ,不算作按键变更。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>s = "aAbBcC"
|
||||
<strong>输出:</strong>2
|
||||
<strong>解释:</strong>
|
||||
从 s[0] = 'a' 到 s[1] = 'A',不存在按键变更,因为不计入 caps lock 或 shift 。
|
||||
从 s[1] = 'A' 到 s[2] = 'b',按键变更。
|
||||
从 s[2] = 'b' 到 s[3] = 'B',不存在按键变更,因为不计入 caps lock 或 shift 。
|
||||
从 s[3] = 'B' 到 s[4] = 'c',按键变更。
|
||||
从 s[4] = 'c' 到 s[5] = 'C',不存在按键变更,因为不计入 caps lock 或 shift 。
|
||||
</pre>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>s = "AaAaAaaA"
|
||||
<strong>输出:</strong>0
|
||||
<strong>解释:</strong> 不存在按键变更,因为这个过程中只按下字母 'a' 和 'A' ,不需要进行按键变更。<!-- notionvc: 8849fe75-f31e-41dc-a2e0-b7d33d8427d2 -->
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= s.length <= 100</code></li>
|
||||
<li><code>s</code> 仅由英文大写字母和小写字母组成。</li>
|
||||
</ul>
|
@@ -0,0 +1,51 @@
|
||||
<p>给你一个下标从 <strong>0</strong> 开始的整数数组 <code>nums</code> 和一个整数 <code>k</code> 。</p>
|
||||
|
||||
<p>一次操作中,你可以选择 <code>nums</code> 中满足 <code>0 <= i < nums.length - 1</code> 的一个下标 <code>i</code> ,并将 <code>nums[i]</code> 和 <code>nums[i + 1]</code> 替换为数字 <code>nums[i] & nums[i + 1]</code> ,其中 <code>&</code> 表示按位 <code>AND</code> 操作。</p>
|
||||
|
||||
<p>请你返回 <strong>至多</strong> <code>k</code> 次操作以内,使 <code>nums</code> 中所有剩余元素按位 <code>OR</code> 结果的 <strong>最小值</strong> 。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<b>输入:</b>nums = [3,5,3,2,7], k = 2
|
||||
<b>输出:</b>3
|
||||
<b>解释:</b>执行以下操作:
|
||||
1. 将 nums[0] 和 nums[1] 替换为 (nums[0] & nums[1]) ,得到 nums 为 [1,3,2,7] 。
|
||||
2. 将 nums[2] 和 nums[3] 替换为 (nums[2] & nums[3]) ,得到 nums 为 [1,3,2] 。
|
||||
最终数组的按位或值为 3 。
|
||||
3 是 k 次操作以内,可以得到的剩余元素的最小按位或值。</pre>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<b>输入:</b>nums = [7,3,15,14,2,8], k = 4
|
||||
<b>输出:</b>2
|
||||
<b>解释:</b>执行以下操作:
|
||||
1. 将 nums[0] 和 nums[1] 替换为 (nums[0] & nums[1]) ,得到 nums 为 [3,15,14,2,8] 。
|
||||
2. 将 nums[0] 和 nums[1] 替换为 (nums[0] & nums[1]) ,得到 nums 为 [3,14,2,8] 。
|
||||
3. 将 nums[0] 和 nums[1] 替换为 (nums[0] & nums[1]) ,得到 nums 为 [2,2,8] 。
|
||||
4. 将 nums[1] 和 nums[2] 替换为 (nums[1] & nums[2]) ,得到 nums 为 [2,0] 。
|
||||
最终数组的按位或值为 2 。
|
||||
2 是 k 次操作以内,可以得到的剩余元素的最小按位或值。
|
||||
</pre>
|
||||
|
||||
<p><strong class="example">示例 3:</strong></p>
|
||||
|
||||
<pre>
|
||||
<b>输入:</b>nums = [10,7,10,3,9,14,9,4], k = 1
|
||||
<b>输出:</b>15
|
||||
<b>解释:</b>不执行任何操作,nums 的按位或值为 15 。
|
||||
15 是 k 次操作以内,可以得到的剩余元素的最小按位或值。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= nums.length <= 10<sup>5</sup></code></li>
|
||||
<li><code>0 <= nums[i] < 2<sup>30</sup></code></li>
|
||||
<li><code>0 <= k < nums.length</code></li>
|
||||
</ul>
|
Reference in New Issue
Block a user