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,42 @@
|
||||
<p>给你一个长度为 <code>n</code> 的整数数组 <code>nums</code> 。</p>
|
||||
|
||||
<p>你的目标是从下标 <code>0</code> 出发,到达下标 <code>n - 1</code> 处。每次你只能移动到 <strong>更大</strong> 的下标处。</p>
|
||||
|
||||
<p>从下标 <code>i</code> 跳到下标 <code>j</code> 的得分为 <code>(j - i) * nums[i]</code> 。</p>
|
||||
|
||||
<p>请你返回你到达最后一个下标处能得到的 <strong>最大总得分</strong> 。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><span class="example-io"><b>输入:</b>nums = [1,3,1,5]</span></p>
|
||||
|
||||
<p><b>输出:</b>7</p>
|
||||
|
||||
<p><b>解释:</b></p>
|
||||
|
||||
<p>一开始跳到下标 1 处,然后跳到最后一个下标处。总得分为 <code>1 * 1 + 2 * 3 = 7</code> 。</p>
|
||||
</div>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><span class="example-io"><b>输入:</b>nums = [4,3,1,3,2]</span></p>
|
||||
|
||||
<p><b>输出:</b>16</p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<p>直接跳到最后一个下标处。总得分为 <code>4 * 4 = 16</code> 。</p>
|
||||
</div>
|
||||
|
||||
<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>5</sup></code></li>
|
||||
</ul>
|
@@ -0,0 +1,78 @@
|
||||
<p>给你一个 <code>50 x 50</code> 的国际象棋棋盘,棋盘上有 <strong>一个</strong> 马和一些兵。给你两个整数 <code>kx</code> 和 <code>ky</code> ,其中 <code>(kx, ky)</code> 表示马所在的位置,同时还有一个二维数组 <code>positions</code> ,其中 <code>positions[i] = [x<sub>i</sub>, y<sub>i</sub>]</code> 表示第 <code>i</code> 个兵在棋盘上的位置。</p>
|
||||
|
||||
<p>Alice 和 Bob 玩一个回合制游戏,Alice 先手。玩家的一次操作中,可以执行以下操作:</p>
|
||||
|
||||
<ul>
|
||||
<li>玩家选择一个仍然在棋盘上的兵,然后移动马,通过 <strong>最少</strong> 的 <strong>步数</strong> 吃掉这个兵。<strong>注意</strong> ,玩家可以选择 <strong>任意</strong> 一个兵,<strong>不一定</strong> 要选择从马的位置出发 <strong>最少</strong> 移动步数的兵。</li>
|
||||
<li><span>在马吃兵的过程中,马 <strong>可能</strong> 会经过一些其他兵的位置,但这些兵 <strong>不会</strong> 被吃掉。<strong>只有</strong> 选中的兵在这个回合中被吃掉。</span></li>
|
||||
</ul>
|
||||
|
||||
<p>Alice 的目标是 <strong>最大化</strong> 两名玩家的 <strong>总</strong> 移动次数,直到棋盘上不再存在兵,而 Bob 的目标是 <strong>最小化</strong> 总移动次数。</p>
|
||||
|
||||
<p>假设两名玩家都采用 <strong>最优</strong> 策略,请你返回可以达到的 <strong>最大</strong> 总移动次数。</p>
|
||||
|
||||
<p>在一次 <strong>移动</strong> 中,如下图所示,马有 8 个可以移动到的位置,每个移动位置都是沿着坐标轴的一个方向前进 2 格,然后沿着垂直的方向前进 1 格。</p>
|
||||
|
||||
<p><img src="https://assets.leetcode.com/uploads/2024/08/01/chess_knight.jpg" style="width: 275px; height: 273px;" /></p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><span class="example-io"><b>输入:</b>kx = 1, ky = 1, positions = [[0,0]]</span></p>
|
||||
|
||||
<p><span class="example-io"><b>输出:</b>4</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<p><img alt="" src="https://assets.leetcode.com/uploads/2024/08/16/gif3.gif" style="width: 275px; height: 275px;" /></p>
|
||||
|
||||
<p>马需要移动 4 步吃掉 <code>(0, 0)</code> 处的兵。</p>
|
||||
</div>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><span class="example-io"><b>输入:</b>kx = 0, ky = 2, positions = [[1,1],[2,2],[3,3]]</span></p>
|
||||
|
||||
<p><span class="example-io"><b>输出:</b>8</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<p><strong><img alt="" src="https://assets.leetcode.com/uploads/2024/08/16/gif4.gif" style="width: 320px; height: 320px;" /></strong></p>
|
||||
|
||||
<ul>
|
||||
<li>Alice 选择 <code>(2, 2)</code> 处的兵,移动马吃掉它需要 2 步:<code>(0, 2) -> (1, 4) -> (2, 2)</code> 。</li>
|
||||
<li>Bob 选择 <code>(3, 3)</code> 处的兵,移动马吃掉它需要 2 步:<code>(2, 2) -> (4, 1) -> (3, 3)</code> 。</li>
|
||||
<li>Alice 选择 <code>(1, 1)</code> 处的兵,移动马吃掉它需要 4 步:<code>(3, 3) -> (4, 1) -> (2, 2) -> (0, 3) -> (1, 1)</code> 。</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<p><strong class="example">示例 3:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><span class="example-io"><b>输入:</b>kx = 0, ky = 0, positions = [[1,2],[2,4]]</span></p>
|
||||
|
||||
<p><span class="example-io"><b>输出:</b>3</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li>Alice 选择 <code>(2, 4)</code> 处的兵,移动马吃掉它需要 2 步:<code>(0, 0) -> (1, 2) -> (2, 4)</code> 。注意,<code>(1, 2)</code> 处的兵不会被吃掉。</li>
|
||||
<li>Bob 选择 <code>(1, 2)</code> 处的兵,移动马吃掉它需要 1 步:<code>(2, 4) -> (1, 2)</code> 。</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>0 <= kx, ky <= 49</code></li>
|
||||
<li><code>1 <= positions.length <= 15</code></li>
|
||||
<li><code>positions[i].length == 2</code></li>
|
||||
<li><code>0 <= positions[i][0], positions[i][1] <= 49</code></li>
|
||||
<li><code>positions[i]</code> 两两互不相同。</li>
|
||||
<li>输入保证对于所有 <code>0 <= i < positions.length</code> ,都有 <code>positions[i] != [kx, ky]</code> 。</li>
|
||||
</ul>
|
@@ -0,0 +1,54 @@
|
||||
<p>给你一个长度为 <code>n</code> 的字符串 <code>s</code> 和一个整数 <code>k</code> ,<code>n</code> 是 <code>k</code> 的 <strong>倍数</strong> 。你的任务是将字符串 <code>s</code> 哈希为一个长度为 <code>n / k</code> 的新字符串 <code>result</code> 。</p>
|
||||
|
||||
<p>首先,将 <code>s</code> 分割成 <code>n / k</code> 个 <strong><span data-keyword="substring-nonempty">子字符串</span></strong> ,每个子字符串的长度都为 <code>k</code> 。然后,将 <code>result</code> 初始化为一个 <strong>空</strong> 字符串。</p>
|
||||
|
||||
<p>我们依次从前往后处理每一个 <strong>子字符串</strong> :</p>
|
||||
|
||||
<ul>
|
||||
<li>一个字符的 <strong>哈希值</strong> 是它在 <strong>字母表</strong> 中的下标(也就是 <code>'a' →<!-- notionvc: d3f8e4c2-23cd-41ad-a14b-101dfe4c5aba --> 0</code> ,<code>'b' →<!-- notionvc: d3f8e4c2-23cd-41ad-a14b-101dfe4c5aba --> 1</code> ,... ,<code>'z' →<!-- notionvc: d3f8e4c2-23cd-41ad-a14b-101dfe4c5aba --> 25</code>)。</li>
|
||||
<li>将子字符串中字幕的 <strong>哈希值</strong> 求和。</li>
|
||||
<li>将和对 26 取余,将结果记为 <code>hashedChar</code> 。</li>
|
||||
<li>找到小写字母表中 <code>hashedChar</code> 对应的字符。</li>
|
||||
<li>将该字符添加到 <code>result</code> 的末尾。</li>
|
||||
</ul>
|
||||
|
||||
<p>返回 <code>result</code> 。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><span class="example-io"><b>输入:</b>s = "abcd", k = 2</span></p>
|
||||
|
||||
<p><span class="example-io"><b>输出:</b>"bf"</span></p>
|
||||
|
||||
<p><b>解释:</b></p>
|
||||
|
||||
<p>第一个字符串为 <code>"ab"</code> ,<code>0 + 1 = 1</code> ,<code>1 % 26 = 1</code> ,<code>result[0] = 'b'</code> 。</p>
|
||||
|
||||
<p>第二个字符串为: <code>"cd"</code> ,<code>2 + 3 = 5</code> ,<code>5 % 26 = 5</code> ,<code>result[1] = 'f'</code> 。</p>
|
||||
</div>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><span class="example-io"><b>输入:</b>s = "mxz", k = 3</span></p>
|
||||
|
||||
<p><span class="example-io"><b>输出:</b>"i"</span></p>
|
||||
|
||||
<p><b>解释:</b></p>
|
||||
|
||||
<p>唯一的子字符串为 <code>"mxz"</code> ,<code>12 + 23 + 25 = 60</code> ,<code>60 % 26 = 8</code> ,<code>result[0] = 'i'</code> 。</p>
|
||||
</div>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= k <= 100</code></li>
|
||||
<li><code>k <= s.length <= 1000</code></li>
|
||||
<li><code>s.length</code> 能被 <code>k</code> 整除。</li>
|
||||
<li><code>s</code> 只含有小写英文字母。</li>
|
||||
</ul>
|
@@ -0,0 +1,61 @@
|
||||
<p>给你一个整数 <code>power</code> 和两个整数数组 <code>damage</code> 和 <code>health</code> ,两个数组的长度都为 <code>n</code> 。</p>
|
||||
|
||||
<p>Bob 有 <code>n</code> 个敌人,如果第 <code>i</code> 个敌人还活着(也就是健康值 <code>health[i] > 0</code> 的时候),每秒钟会对 Bob 造成 <code>damage[i]</code> <strong>点</strong> 伤害。</p>
|
||||
|
||||
<p>每一秒中,在敌人对 Bob 造成伤害 <strong>之后</strong> ,Bob 会选择 <strong>一个</strong> 还活着的敌人进行攻击,该敌人的健康值减少 <code>power</code> 。</p>
|
||||
|
||||
<p>请你返回 Bob 将 <strong>所有</strong> <code>n</code> 个敌人都消灭之前,<strong>最少</strong> 会收到多少伤害。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><span class="example-io"><b>输入:</b>power = 4, damage = [1,2,3,4], health = [4,5,6,8]</span></p>
|
||||
|
||||
<p><span class="example-io"><b>输出:</b>39</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li>最开始 2 秒内都攻击敌人 3 ,然后敌人 3 会被消灭,这段时间内对 Bob 的总伤害是 <code>10 + 10 = 20</code> 点。</li>
|
||||
<li>接下来 2 秒内都攻击敌人 2 ,然后敌人 2 会被消灭,这段时间内对 Bob 的总伤害是 <code>6 + 6 = 12</code> 点。</li>
|
||||
<li>接下来 1 秒内都攻击敌人 0 ,然后敌人 0 会被消灭,这段时间内对 Bob 的总伤害是 <code>3</code> 点。</li>
|
||||
<li>接下来 2 秒内都攻击敌人 1 ,然后敌人 1 会被消灭,这段时间内对 Bob 的总伤害是 <code>2 + 2 = 4</code> 点。</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><span class="example-io"><b>输入:</b>power = 1, damage = [1,1,1,1], health = [1,2,3,4]</span></p>
|
||||
|
||||
<p><span class="example-io"><b>输出:</b>20</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li>最开始 1 秒内都攻击敌人 0 ,然后敌人 0 会被消灭,这段时间对 Bob 的总伤害是 <code>4</code> 点。</li>
|
||||
<li>接下来 2 秒内都攻击敌人 1 ,然后敌人 1 会被消灭,这段时间对 Bob 的总伤害是 <code>3 + 3 = 6</code> 点。</li>
|
||||
<li>接下来 3 秒内都攻击敌人 2 ,然后敌人 2 会被消灭,这段时间对 Bob 的总伤害是 <code>2 + 2 + 2 = 6</code> 点。</li>
|
||||
<li>接下来 4 秒内都攻击敌人 3 ,然后敌人 3 会被消灭,这段时间对 Bob 的总伤害是 <code>1 + 1 + 1 + 1 = 4</code> 点。</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<p><strong class="example">示例 3:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><span class="example-io"><b>输入:</b>power = 8, damage = [40], health = [59]</span></p>
|
||||
|
||||
<p><span class="example-io"><b>输出:</b>320</span></p>
|
||||
</div>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= power <= 10<sup>4</sup></code></li>
|
||||
<li><code>1 <= n == damage.length == health.length <= 10<sup>5</sup></code></li>
|
||||
<li><code>1 <= damage[i], health[i] <= 10<sup>4</sup></code></li>
|
||||
</ul>
|
@@ -0,0 +1,41 @@
|
||||
<p>给你一个字符串 <code>date</code>,它的格式为 <code>yyyy-mm-dd</code>,表示一个公历日期。</p>
|
||||
|
||||
<p><code>date</code> 可以重写为二进制表示,只需要将年、月、日分别转换为对应的二进制表示(不带前导零)并遵循 <code>year-month-day</code> 的格式。</p>
|
||||
|
||||
<p>返回 <code>date</code> 的 <strong>二进制</strong> 表示。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><strong>输入:</strong> <span class="example-io">date = "2080-02-29"</span></p>
|
||||
|
||||
<p><strong>输出:</strong> <span class="example-io">"100000100000-10-11101"</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<p><span class="example-io">100000100000, 10 和 11101 分别是 2080, 02 和 29 的二进制表示。</span></p>
|
||||
</div>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><strong>输入:</strong> <span class="example-io">date = "1900-01-01"</span></p>
|
||||
|
||||
<p><strong>输出:</strong> <span class="example-io">"11101101100-1-1"</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<p><span class="example-io">11101101100, 1 和 1 分别是 1900, 1 和 1 的二进制表示。</span></p>
|
||||
</div>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>date.length == 10</code></li>
|
||||
<li><code>date[4] == date[7] == '-'</code>,其余的 <code>date[i]</code> 都是数字。</li>
|
||||
<li>输入保证 <code>date</code> 代表一个有效的公历日期,日期范围从 1900 年 1 月 1 日到 2100 年 12 月 31 日(包括这两天)。</li>
|
||||
</ul>
|
@@ -0,0 +1,63 @@
|
||||
<p>给你一个字符串数组 <code>words</code> 和一个字符串 <code>target</code>。</p>
|
||||
|
||||
<p>如果字符串 <code>x</code> 是 <code>words</code> 中<strong> 任意 </strong>字符串的 <span data-keyword="string-prefix">前缀</span>,则认为 <code>x</code> 是一个 <strong>有效</strong> 字符串。</p>
|
||||
|
||||
<p>现计划通过 <strong>连接 </strong>有效字符串形成 <code>target</code> ,请你计算并返回需要连接的 <strong>最少 </strong>字符串数量。如果无法通过这种方式形成 <code>target</code>,则返回 <code>-1</code>。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><strong>输入:</strong> <span class="example-io">words = ["abc","aaaaa","bcdef"], target = "aabcdabc"</span></p>
|
||||
|
||||
<p><strong>输出:</strong> <span class="example-io">3</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<p>target 字符串可以通过连接以下有效字符串形成:</p>
|
||||
|
||||
<ul>
|
||||
<li><code>words[1]</code> 的长度为 2 的前缀,即 <code>"aa"</code>。</li>
|
||||
<li><code>words[2]</code> 的长度为 3 的前缀,即 <code>"bcd"</code>。</li>
|
||||
<li><code>words[0]</code> 的长度为 3 的前缀,即 <code>"abc"</code>。</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><strong>输入:</strong> <span class="example-io">words = ["abababab","ab"], target = "ababaababa"</span></p>
|
||||
|
||||
<p><strong>输出:</strong> <span class="example-io">2</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<p>target 字符串可以通过连接以下有效字符串形成:</p>
|
||||
|
||||
<ul>
|
||||
<li><code>words[0]</code> 的长度为 5 的前缀,即 <code>"ababa"</code>。</li>
|
||||
<li><code>words[0]</code> 的长度为 5 的前缀,即 <code>"ababa"</code>。</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<p><strong class="example">示例 3:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><strong>输入:</strong> <span class="example-io">words = ["abcdef"], target = "xyz"</span></p>
|
||||
|
||||
<p><strong>输出:</strong> <span class="example-io">-1</span></p>
|
||||
</div>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= words.length <= 100</code></li>
|
||||
<li><code>1 <= words[i].length <= 5 * 10<sup>3</sup></code></li>
|
||||
<li>输入确保 <code>sum(words[i].length) <= 10<sup>5</sup></code>。</li>
|
||||
<li><code>words[i]</code> 只包含小写英文字母。</li>
|
||||
<li><code>1 <= target.length <= 5 * 10<sup>3</sup></code></li>
|
||||
<li><code>target</code> 只包含小写英文字母。</li>
|
||||
</ul>
|
@@ -0,0 +1,63 @@
|
||||
<p>给你一个字符串数组 <code>words</code> 和一个字符串 <code>target</code>。</p>
|
||||
|
||||
<p>如果字符串 <code>x</code> 是 <code>words</code> 中<strong> 任意 </strong>字符串的 <span data-keyword="string-prefix">前缀</span>,则认为 <code>x</code> 是一个 <strong>有效</strong> 字符串。</p>
|
||||
|
||||
<p>现计划通过 <strong>连接 </strong>有效字符串形成 <code>target</code> ,请你计算并返回需要连接的 <strong>最少 </strong>字符串数量。如果无法通过这种方式形成 <code>target</code>,则返回 <code>-1</code>。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><strong>输入:</strong> <span class="example-io">words = ["abc","aaaaa","bcdef"], target = "aabcdabc"</span></p>
|
||||
|
||||
<p><strong>输出:</strong> <span class="example-io">3</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<p>target 字符串可以通过连接以下有效字符串形成:</p>
|
||||
|
||||
<ul>
|
||||
<li><code>words[1]</code> 的长度为 2 的前缀,即 <code>"aa"</code>。</li>
|
||||
<li><code>words[2]</code> 的长度为 3 的前缀,即 <code>"bcd"</code>。</li>
|
||||
<li><code>words[0]</code> 的长度为 3 的前缀,即 <code>"abc"</code>。</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><strong>输入:</strong> <span class="example-io">words = ["abababab","ab"], target = "ababaababa"</span></p>
|
||||
|
||||
<p><strong>输出:</strong> <span class="example-io">2</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<p>target 字符串可以通过连接以下有效字符串形成:</p>
|
||||
|
||||
<ul>
|
||||
<li><code>words[0]</code> 的长度为 5 的前缀,即 <code>"ababa"</code>。</li>
|
||||
<li><code>words[0]</code> 的长度为 5 的前缀,即 <code>"ababa"</code>。</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<p><strong class="example">示例 3:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><strong>输入:</strong> <span class="example-io">words = ["abcdef"], target = "xyz"</span></p>
|
||||
|
||||
<p><strong>输出:</strong> <span class="example-io">-1</span></p>
|
||||
</div>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= words.length <= 100</code></li>
|
||||
<li><code>1 <= words[i].length <= 5 * 10<sup>4</sup></code></li>
|
||||
<li>输入确保 <code>sum(words[i].length) <= 10<sup>5</sup></code>.</li>
|
||||
<li><code>words[i]</code> 只包含小写英文字母。</li>
|
||||
<li><code>1 <= target.length <= 5 * 10<sup>4</sup></code></li>
|
||||
<li><code>target</code> 只包含小写英文字母。</li>
|
||||
</ul>
|
@@ -0,0 +1,48 @@
|
||||
<p>有 <code>n</code> 座山排成一列,每座山都有一个高度。给你一个整数数组 <code>height</code> ,其中 <code>height[i]</code> 表示第 <code>i</code> 座山的高度,再给你一个整数 <code>threshold</code> 。</p>
|
||||
|
||||
<p>对于下标不为 <code>0</code> 的一座山,如果它左侧相邻的山的高度 <strong>严格</strong><strong>大于</strong> <code>threshold</code> ,那么我们称它是 <strong>稳定</strong> 的。我们定义下标为 <code>0</code> 的山 <strong>不是</strong> 稳定的。</p>
|
||||
|
||||
<p>请你返回一个数组,包含所有 <strong>稳定</strong> 山的下标,你可以以 <strong>任意</strong> 顺序返回下标数组。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><span class="example-io"><b>输入:</b>height = [1,2,3,4,5], threshold = 2</span></p>
|
||||
|
||||
<p><span class="example-io"><b>输出:</b>[3,4]</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li>下标为 3 的山是稳定的,因为 <code>height[2] == 3</code> 大于 <code>threshold == 2</code> 。</li>
|
||||
<li>下标为 4 的山是稳定的,因为 <code>height[3] == 4</code> 大于 <code>threshold == 2</code>.</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><span class="example-io"><b>输入:</b>height = [10,1,10,1,10], threshold = 3</span></p>
|
||||
|
||||
<p><span class="example-io"><b>输出:</b>[1,3]</span></p>
|
||||
</div>
|
||||
|
||||
<p><strong class="example">示例 3:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><span class="example-io"><b>输入:</b>height = [10,1,10,1,10], threshold = 10</span></p>
|
||||
|
||||
<p><span class="example-io"><b>输出:</b>[]</span></p>
|
||||
</div>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>2 <= n == height.length <= 100</code></li>
|
||||
<li><code>1 <= height[i] <= 100</code></li>
|
||||
<li><code>1 <= threshold <= 100</code></li>
|
||||
</ul>
|
@@ -0,0 +1,54 @@
|
||||
<p>数字小镇 Digitville 中,存在一个数字列表 <code>nums</code>,其中包含从 <code>0</code> 到 <code>n - 1</code> 的整数。每个数字本应 <strong>只出现一次</strong>,然而,有 <strong>两个 </strong>顽皮的数字额外多出现了一次,使得列表变得比正常情况下更长。</p>
|
||||
|
||||
<p>为了恢复 Digitville 的和平,作为小镇中的名侦探,请你找出这两个顽皮的数字。</p>
|
||||
|
||||
<p>返回一个长度为 2 的数组,包含这两个数字(顺序任意)。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><strong>输入:</strong> <span class="example-io">nums = [0,1,1,0]</span></p>
|
||||
|
||||
<p><strong>输出:</strong> <span class="example-io">[0,1]</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<p>数字 0 和 1 分别在数组中出现了两次。</p>
|
||||
</div>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><strong>输入:</strong> <span class="example-io">nums = [0,3,2,1,3,2]</span></p>
|
||||
|
||||
<p><strong>输出:</strong> <span class="example-io">[2,3]</span></p>
|
||||
|
||||
<p><strong>解释: </strong></p>
|
||||
|
||||
<p>数字 2 和 3 分别在数组中出现了两次。</p>
|
||||
</div>
|
||||
|
||||
<p><strong class="example">示例 3:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><strong>输入:</strong> <span class="example-io">nums = [7,1,5,4,3,4,6,0,9,5,8,2]</span></p>
|
||||
|
||||
<p><strong>输出:</strong> <span class="example-io">[4,5]</span></p>
|
||||
|
||||
<p><strong>解释: </strong></p>
|
||||
|
||||
<p>数字 4 和 5 分别在数组中出现了两次。</p>
|
||||
</div>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>2 <= n <= 100</code></li>
|
||||
<li><code>nums.length == n + 2</code></li>
|
||||
<li><code>0 <= nums[i] < n</code></li>
|
||||
<li>输入保证 <code>nums</code> 中<strong> 恰好 </strong>包含两个重复的元素。</li>
|
||||
</ul>
|
@@ -0,0 +1,50 @@
|
||||
<p>给你一个长度为 <code>n</code> 的二维整数数组 <code>coordinates</code> 和一个整数 <code>k</code> ,其中 <code>0 <= k < n</code> 。</p>
|
||||
|
||||
<p><code>coordinates[i] = [x<sub>i</sub>, y<sub>i</sub>]</code> 表示二维平面里一个点 <code>(x<sub>i</sub>, y<sub>i</sub>)</code> 。</p>
|
||||
|
||||
<p>如果一个点序列 <code>(x<sub>1</sub>, y<sub>1</sub>)</code>, <code>(x<sub>2</sub>, y<sub>2</sub>)</code>, <code>(x<sub>3</sub>, y<sub>3</sub>)</code>, ..., <code>(x<sub>m</sub>, y<sub>m</sub>)</code> 满足以下条件,那么我们称它是一个长度为 <code>m</code> 的 <strong>上升序列</strong> :</p>
|
||||
|
||||
<ul>
|
||||
<li>对于所有满足 <code>1 <= i < m</code> 的 <code>i</code> 都有 <code>x<sub>i</sub> < x<sub>i + 1</sub></code> 且 <code>y<sub>i</sub> < y<sub>i + 1</sub></code> 。</li>
|
||||
<li>对于所有 <code>1 <= i <= m</code> 的 <code>i</code> 对应的点 <code>(x<sub>i</sub>, y<sub>i</sub>)</code> 都在给定的坐标数组里。</li>
|
||||
</ul>
|
||||
|
||||
<p>请你返回包含坐标 <code>coordinates[k]</code> 的 <strong>最长上升路径</strong> 的长度。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><span class="example-io"><b>输入:</b>coordinates = [[3,1],[2,2],[4,1],[0,0],[5,3]], k = 1</span></p>
|
||||
|
||||
<p><span class="example-io"><b>输出:</b>3</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<p><code>(0, 0)</code> ,<code>(2, 2)</code> ,<code>(5, 3)</code><!-- notionvc: 082cee9e-4ce5-4ede-a09d-57001a72141d --> 是包含坐标 <code>(2, 2)</code> 的最长上升路径。</p>
|
||||
</div>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><span class="example-io"><b>输入:</b>coordinates = [[2,1],[7,0],[5,6]], k = 2</span></p>
|
||||
|
||||
<p><span class="example-io"><b>输出:</b>2</span></p>
|
||||
|
||||
<p><b>解释:</b></p>
|
||||
|
||||
<p><code>(2, 1)</code> ,<code>(5, 6)</code> 是包含坐标 <code>(5, 6)</code> 的最长上升路径。</p>
|
||||
</div>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= n == coordinates.length <= 10<sup>5</sup></code></li>
|
||||
<li><code>coordinates[i].length == 2</code></li>
|
||||
<li><code>0 <= coordinates[i][0], coordinates[i][1] <= 10<sup>9</sup></code></li>
|
||||
<li><code>coordinates</code> 中的元素 <strong>互不相同</strong> 。<!-- notionvc: 6e412fc2-f9dd-4ba2-b796-5e802a2b305a --><!-- notionvc: c2cf5618-fe99-4909-9b4c-e6b068be22a6 --></li>
|
||||
<li><code>0 <= k <= n - 1</code></li>
|
||||
</ul>
|
@@ -0,0 +1,39 @@
|
||||
<p>给你一个大小为 4 的整数数组 <code>a</code> 和一个大小 <strong>至少</strong>为 4 的整数数组 <code>b</code>。</p>
|
||||
|
||||
<p>你需要从数组 <code>b</code> 中选择四个下标 <code>i<sub>0</sub></code>, <code>i<sub>1</sub></code>, <code>i<sub>2</sub></code>, 和 <code>i<sub>3</sub></code>,并满足 <code>i<sub>0</sub> < i<sub>1</sub> < i<sub>2</sub> < i<sub>3</sub></code>。你的得分将是 <code>a[0] * b[i<sub>0</sub>] + a[1] * b[i<sub>1</sub>] + a[2] * b[i<sub>2</sub>] + a[3] * b[i<sub>3</sub>]</code> 的值。</p>
|
||||
|
||||
<p>返回你能够获得的 <strong>最大 </strong>得分。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><strong>输入:</strong> <span class="example-io">a = [3,2,5,6], b = [2,-6,4,-5,-3,2,-7]</span></p>
|
||||
|
||||
<p><strong>输出:</strong> <span class="example-io">26</span></p>
|
||||
|
||||
<p><strong>解释:</strong><br />
|
||||
选择下标 0, 1, 2 和 5。得分为 <code>3 * 2 + 2 * (-6) + 5 * 4 + 6 * 2 = 26</code>。</p>
|
||||
</div>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><strong>输入:</strong> <span class="example-io">a = [-1,4,5,-2], b = [-5,-1,-3,-2,-4]</span></p>
|
||||
|
||||
<p><strong>输出:</strong> <span class="example-io">-1</span></p>
|
||||
|
||||
<p><strong>解释:</strong><br />
|
||||
选择下标 0, 1, 3 和 4。得分为 <code>(-1) * (-5) + 4 * (-1) + 5 * (-2) + (-2) * (-4) = -1</code>。</p>
|
||||
</div>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>a.length == 4</code></li>
|
||||
<li><code>4 <= b.length <= 10<sup>5</sup></code></li>
|
||||
<li><code>-10<sup>5</sup> <= a[i], b[i] <= 10<sup>5</sup></code></li>
|
||||
</ul>
|
@@ -0,0 +1,96 @@
|
||||
<p>给你一个由 <code>n</code> 个整数组成的数组 <code>nums</code>,以及一个大小为 <code>q</code> 的二维整数数组 <code>queries</code>,其中 <code>queries[i] = [l<sub>i</sub>, r<sub>i</sub>]</code>。</p>
|
||||
|
||||
<p>对于每一个查询,你需要找出 <code>nums[l<sub>i</sub>..r<sub>i</sub>]</code> 中任意 <span data-keyword="subarray">子数组</span> 的 <strong>最大异或值</strong>。</p>
|
||||
|
||||
<p><strong>数组的异或值 </strong>需要对数组 <code>a</code> 反复执行以下操作,直到只剩一个元素,剩下的那个元素就是 <strong>异或值</strong>:</p>
|
||||
|
||||
<ul>
|
||||
<li><span class="text-only" data-eleid="9" style="white-space: pre;">对于除最后一个下标以外的所有下标</span> <code>i</code>,同时将 <code>a[i]</code> 替换为 <code>a[i] XOR a[i + 1]</code> 。</li>
|
||||
<li>移除数组的最后一个元素。</li>
|
||||
</ul>
|
||||
|
||||
<p>返回一个大小为 <code>q</code> 的数组 <code>answer</code>,其中 <code>answer[i]</code> 表示查询 <code>i</code> 的答案。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><strong>输入:</strong> <span class="example-io">nums = [2,8,4,32,16,1], queries = [[0,2],[1,4],[0,5]]</span></p>
|
||||
|
||||
<p><strong>输出:</strong> <span class="example-io">[12,60,60]</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<p>在第一个查询中,<code>nums[0..2]</code> 的子数组分别是 <code>[2]</code>, <code>[8]</code>, <code>[4]</code>, <code>[2, 8]</code>, <code>[8, 4]</code>, 和 <code>[2, 8, 4]</code>,它们的异或值分别为 2, 8, 4, 10, 12, 和 6。查询的答案是 12,所有异或值中的最大值。</p>
|
||||
|
||||
<p>在第二个查询中,<code>nums[1..4]</code> 的子数组中最大的异或值是子数组 <code>nums[1..4]</code> 的异或值,为 60。</p>
|
||||
|
||||
<p>在第三个查询中,<code>nums[0..5]</code> 的子数组中最大的异或值是子数组 <code>nums[1..4]</code> 的异或值,为 60。</p>
|
||||
</div>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><strong>输入:</strong> <span class="example-io">nums = [0,7,3,2,8,5,1], queries = [[0,3],[1,5],[2,4],[2,6],[5,6]]</span></p>
|
||||
|
||||
<p><strong>输出:</strong> <span class="example-io">[7,14,11,14,5]</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<table height="70" width="472">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>下标</th>
|
||||
<th>nums[l<sub>i</sub>..r<sub>i</sub>]</th>
|
||||
<th>最大异或值子数组</th>
|
||||
<th>子数组最大异或值</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>0</td>
|
||||
<td>[0, 7, 3, 2]</td>
|
||||
<td>[7]</td>
|
||||
<td>7</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1</td>
|
||||
<td>[7, 3, 2, 8, 5]</td>
|
||||
<td>[7, 3, 2, 8]</td>
|
||||
<td>14</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2</td>
|
||||
<td>[3, 2, 8]</td>
|
||||
<td>[3, 2, 8]</td>
|
||||
<td>11</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3</td>
|
||||
<td>[3, 2, 8, 5, 1]</td>
|
||||
<td>[2, 8, 5, 1]</td>
|
||||
<td>14</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>4</td>
|
||||
<td>[5, 1]</td>
|
||||
<td>[5]</td>
|
||||
<td>5</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= n == nums.length <= 2000</code></li>
|
||||
<li><code>0 <= nums[i] <= 2<sup>31</sup> - 1</code></li>
|
||||
<li><code>1 <= q == queries.length <= 10<sup>5</sup></code></li>
|
||||
<li><code>queries[i].length == 2</code></li>
|
||||
<li><code>queries[i] = [l<sub>i</sub>, r<sub>i</sub>]</code></li>
|
||||
<li><code>0 <= l<sub>i</sub> <= r<sub>i</sub> <= n - 1</code></li>
|
||||
</ul>
|
@@ -0,0 +1,45 @@
|
||||
<p>给你两个字符串 <code>coordinate1</code> 和 <code>coordinate2</code>,代表 <code>8 x 8</code> 国际象棋棋盘上的两个方格的坐标。</p>
|
||||
|
||||
<p>以下是棋盘的参考图。</p>
|
||||
|
||||
<p><img alt="" src="https://assets.leetcode.com/uploads/2024/07/17/screenshot-2021-02-20-at-22159-pm.png" style="width: 400px; height: 396px;" /></p>
|
||||
|
||||
<p>如果这两个方格颜色相同,返回 <code>true</code>,否则返回 <code>false</code>。</p>
|
||||
|
||||
<p>坐标总是表示有效的棋盘方格。坐标的格式总是先字母(表示列),再数字(表示行)。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><strong>输入:</strong> <span class="example-io">coordinate1 = "a1", coordinate2 = "c3"</span></p>
|
||||
|
||||
<p><strong>输出:</strong> <span class="example-io">true</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<p>两个方格均为黑色。</p>
|
||||
</div>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><strong>输入:</strong> <span class="example-io">coordinate1 = "a1", coordinate2 = "h3"</span></p>
|
||||
|
||||
<p><strong>输出:</strong> <span class="example-io">false</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<p>方格 <code>"a1"</code> 是黑色,而 <code>"h3"</code> 是白色。</p>
|
||||
</div>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>coordinate1.length == coordinate2.length == 2</code></li>
|
||||
<li><code>'a' <= coordinate1[0], coordinate2[0] <= 'h'</code></li>
|
||||
<li><code>'1' <= coordinate1[1], coordinate2[1] <= '8'</code></li>
|
||||
</ul>
|
@@ -0,0 +1,57 @@
|
||||
<p>给你三个 <strong>正</strong> 整数 <code>num1</code> ,<code>num2</code> 和 <code>num3</code> 。</p>
|
||||
|
||||
<p>数字 <code>num1</code> ,<code>num2</code> 和 <code>num3</code> 的数字答案 <code>key</code> 是一个四位数,定义如下:</p>
|
||||
|
||||
<ul>
|
||||
<li>一开始,如果有数字 <strong>少于</strong> 四位数,给它补 <strong>前导 0 </strong>。</li>
|
||||
<li>答案 <code>key</code> 的第 <code>i</code> 个数位(<code>1 <= i <= 4</code>)为 <code>num1</code> ,<code>num2</code> 和 <code>num3</code> 第 <code>i</code> 个数位中的 <strong>最小</strong> 值。</li>
|
||||
</ul>
|
||||
|
||||
<p>请你返回三个数字 <strong>没有</strong> 前导 0 的数字答案。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><span class="example-io"><b>输入:</b>num1 = 1, num2 = 10, num3 = 1000</span></p>
|
||||
|
||||
<p><span class="example-io"><b>输出:</b>0</span></p>
|
||||
|
||||
<p><b>解释:</b></p>
|
||||
|
||||
<p>补前导 0 后,<code>num1</code> 变为 <code>"0001"</code> ,<code>num2</code> 变为 <code>"0010"</code> ,<code>num3</code> 保持不变,为 <code>"1000"</code> 。</p>
|
||||
|
||||
<ul>
|
||||
<li>数字答案 <code>key</code> 的第 <code>1</code> 个数位为 <code>min(0, 0, 1)</code> 。</li>
|
||||
<li>数字答案 <code>key</code> 的第 <code>2</code> 个数位为 <code>min(0, 0, 0)</code> 。</li>
|
||||
<li>数字答案 <code>key</code> 的第 <code>3</code> 个数位为 <code>min(0, 1, 0)</code> 。</li>
|
||||
<li>数字答案 <code>key</code> 的第 <code>4</code> 个数位为 <code>min(1, 0, 0)</code> 。</li>
|
||||
</ul>
|
||||
|
||||
<p>所以数字答案为 <code>"0000"</code> ,也就是 0 。</p>
|
||||
</div>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><strong>输入:</strong> <span class="example-io">num1 = 987, num2 = 879, num3 = 798</span></p>
|
||||
|
||||
<p><span class="example-io"><b>输出:</b>777</span></p>
|
||||
</div>
|
||||
|
||||
<p><strong class="example">示例 3:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><span class="example-io"><b>输入:</b>num1 = 1, num2 = 2, num3 = 3</span></p>
|
||||
|
||||
<p><span class="example-io"><b>输出:</b>1</span></p>
|
||||
</div>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= num1, num2, num3 <= 9999</code></li>
|
||||
</ul>
|
@@ -0,0 +1,45 @@
|
||||
<p>给你一个整数数组 <code>nums</code> 和一个 <strong>正</strong> 整数 <code>k</code> 。</p>
|
||||
|
||||
<p>定义长度为 <code>2 * x</code> 的序列 <code>seq</code> 的 <strong>值</strong> 为:</p>
|
||||
|
||||
<ul>
|
||||
<li><code>(seq[0] OR seq[1] OR ... OR seq[x - 1]) XOR (seq[x] OR seq[x + 1] OR ... OR seq[2 * x - 1])</code>.</li>
|
||||
</ul>
|
||||
|
||||
<p>请你求出 <code>nums</code> 中所有长度为 <code>2 * k</code> 的 <span data-keyword="subsequence-array">子序列</span> 的 <strong>最大值</strong> 。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><span class="example-io"><b>输入:</b>nums = [2,6,7], k = 1</span></p>
|
||||
|
||||
<p><span class="example-io"><b>输出:</b>5</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<p>子序列 <code>[2, 7]</code> 的值最大,为 <code>2 XOR 7 = 5</code> 。</p>
|
||||
</div>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><span class="example-io"><b>输入:</b>nums = [4,2,5,6,7], k = 2</span></p>
|
||||
|
||||
<p><span class="example-io"><b>输出:</b>2</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<p>子序列 <code>[4, 5, 6, 7]</code> 的值最大,为 <code>(4 OR 5) XOR (6 OR 7) = 2</code> 。</p>
|
||||
</div>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>2 <= nums.length <= 400</code></li>
|
||||
<li><code>1 <= nums[i] < 2<sup>7</sup></code></li>
|
||||
<li><code>1 <= k <= nums.length / 2</code></li>
|
||||
</ul>
|
@@ -0,0 +1,66 @@
|
||||
<p>给你一个 <code>m x n</code> 的二进制矩形 <code>grid</code> 和一个整数 <code>health</code> 表示你的健康值。</p>
|
||||
|
||||
<p>你开始于矩形的左上角 <code>(0, 0)</code> ,你的目标是矩形的右下角 <code>(m - 1, n - 1)</code> 。</p>
|
||||
|
||||
<p>你可以在矩形中往上下左右相邻格子移动,但前提是你的健康值始终是 <b>正数</b> 。</p>
|
||||
|
||||
<p>对于格子 <code>(i, j)</code> ,如果 <code>grid[i][j] = 1</code> ,那么这个格子视为 <strong>不安全</strong> 的,会使你的健康值减少 1 。</p>
|
||||
|
||||
<p>如果你可以到达最终的格子,请你返回 <code>true</code> ,否则返回 <code>false</code> 。</p>
|
||||
|
||||
<p><b>注意</b> ,当你在最终格子的时候,你的健康值也必须为<strong> 正数</strong> 。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><span class="example-io"><b>输入:</b>grid = [[0,1,0,0,0],[0,1,0,1,0],[0,0,0,1,0]], health = 1</span></p>
|
||||
|
||||
<p><span class="example-io"><b>输出:</b>true</span></p>
|
||||
|
||||
<p><b>解释:</b></p>
|
||||
|
||||
<p>沿着下图中灰色格子走,可以安全到达最终的格子。</p>
|
||||
<img alt="" src="https://assets.leetcode.com/uploads/2024/08/04/3868_examples_1drawio.png" style="width: 301px; height: 121px;" /></div>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><span class="example-io"><b>输入:</b>grid = [[0,1,1,0,0,0],[1,0,1,0,0,0],[0,1,1,1,0,1],[0,0,1,0,1,0]], health = 3</span></p>
|
||||
|
||||
<p><span class="example-io"><b>输出:</b>false</span></p>
|
||||
|
||||
<p><b>解释:</b></p>
|
||||
|
||||
<p>健康值最少为 4 才能安全到达最后的格子。</p>
|
||||
<img alt="" src="https://assets.leetcode.com/uploads/2024/08/04/3868_examples_2drawio.png" style="width: 361px; height: 161px;" /></div>
|
||||
|
||||
<p><strong class="example">示例 3:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><span class="example-io"><b>输入:</b>grid = [[1,1,1],[1,0,1],[1,1,1]], health = 5</span></p>
|
||||
|
||||
<p><span class="example-io"><b>输出:</b>true</span></p>
|
||||
|
||||
<p><b>解释:</b></p>
|
||||
|
||||
<p>沿着下图中灰色格子走,可以安全到达最终的格子。</p>
|
||||
|
||||
<p><img alt="" src="https://assets.leetcode.com/uploads/2024/08/04/3868_examples_3drawio.png" style="width: 181px; height: 121px;" /></p>
|
||||
|
||||
<p>任何不经过格子 <code>(1, 1)</code> 的路径都是不安全的,因为你的健康值到达最终格子时,都会小于等于 0 。</p>
|
||||
</div>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>m == grid.length</code></li>
|
||||
<li><code>n == grid[i].length</code></li>
|
||||
<li><code>1 <= m, n <= 50</code></li>
|
||||
<li><code>2 <= m * n</code></li>
|
||||
<li><code>1 <= health <= m + n</code></li>
|
||||
<li><code>grid[i][j]</code> 要么是 0 ,要么是 1 。</li>
|
||||
</ul>
|
@@ -0,0 +1,63 @@
|
||||
<p>有一个无限大的二维平面。</p>
|
||||
|
||||
<p>给你一个正整数 <code>k</code> ,同时给你一个二维数组 <code>queries</code> ,包含一系列查询:</p>
|
||||
|
||||
<ul>
|
||||
<li><code>queries[i] = [x, y]</code> :在平面上坐标 <code>(x, y)</code> 处建一个障碍物,数据保证之前的查询 <strong>不会</strong> 在这个坐标处建立任何障碍物。</li>
|
||||
</ul>
|
||||
|
||||
<p>每次查询后,你需要找到离原点第 <code>k</code> <strong>近</strong> 障碍物到原点的 <strong>距离</strong> 。</p>
|
||||
|
||||
<p>请你返回一个整数数组 <code>results</code> ,其中 <code>results[i]</code> 表示建立第 <code>i</code> 个障碍物以后,离原地第 <code>k</code> 近障碍物距离原点的距离。如果少于 <code>k</code> 个障碍物,<code>results[i] == -1</code> 。</p>
|
||||
|
||||
<p><strong>注意</strong>,一开始 <strong>没有</strong> 任何障碍物。</p>
|
||||
|
||||
<p>坐标在 <code>(x, y)</code> 处的点距离原点的距离定义为 <code>|x| + |y|</code> 。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><span class="example-io"><b>输入:</b>queries = [[1,2],[3,4],[2,3],[-3,0]], k = 2</span></p>
|
||||
|
||||
<p><span class="example-io"><b>输出:</b>[-1,7,5,3]</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<p>最初,不存在障碍物。</p>
|
||||
|
||||
<ul>
|
||||
<li><code>queries[0]</code> 之后,少于 2 个障碍物。</li>
|
||||
<li><code>queries[1]</code> 之后, 两个障碍物距离原点的距离分别为 3 和 7 。</li>
|
||||
<li><code>queries[2]</code> 之后,障碍物距离原点的距离分别为 3 ,5 和 7 。</li>
|
||||
<li><code>queries[3]</code> 之后,障碍物距离原点的距离分别为 3,3,5 和 7 。</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><span class="example-io"><b>输入:</b>queries = [[5,5],[4,4],[3,3]], k = 1</span></p>
|
||||
|
||||
<p><span class="example-io"><b>输出:</b>[10,8,6]</span></p>
|
||||
|
||||
<p><b>解释:</b></p>
|
||||
|
||||
<ul>
|
||||
<li><code>queries[0]</code> 之后,只有一个障碍物,距离原点距离为 10 。</li>
|
||||
<li><code>queries[1]</code> 之后,障碍物距离原点距离分别为 8 和 10 。</li>
|
||||
<li><code>queries[2]</code> 之后,障碍物距离原点的距离分别为 6, 8 和10 。</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= queries.length <= 2 * 10<sup>5</sup></code></li>
|
||||
<li>所有 <code>queries[i]</code> 互不相同。</li>
|
||||
<li><code>-10<sup>9</sup> <= queries[i][0], queries[i][1] <= 10<sup>9</sup></code></li>
|
||||
<li><code>1 <= k <= 10<sup>5</sup></code></li>
|
||||
</ul>
|
@@ -0,0 +1,62 @@
|
||||
<p>给你两个 <strong>正</strong> 整数 <code>n</code> 和 <code>k</code> 。</p>
|
||||
|
||||
<p>如果一个整数 <code>x</code> 满足以下条件,那么它被称为 <strong>k</strong><strong> 回文</strong> 整数 。</p>
|
||||
|
||||
<ul>
|
||||
<li><code>x</code> 是一个 <span data-keyword="palindrome-integer">回文整数 。</span></li>
|
||||
<li><code>x</code> 能被 <code>k</code> 整除。</li>
|
||||
</ul>
|
||||
|
||||
<p>如果一个整数的数位重新排列后能得到一个 <strong>k 回文整数</strong> ,那么我们称这个整数为 <strong>好 </strong>整数。比方说,<code>k = 2</code> ,那么 2020 可以重新排列得到 2002 ,2002 是一个 k 回文串,所以 2020 是一个好整数。而 1010 无法重新排列数位得到一个 k 回文整数。</p>
|
||||
|
||||
<p>请你返回 <code>n</code> 个数位的整数中,有多少个 <strong>好</strong> 整数。</p>
|
||||
|
||||
<p><b>注意</b> ,任何整数在重新排列数位之前或者之后 <strong>都不能</strong> 有前导 0 。比方说 1010 不能重排列得到 101 。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><span class="example-io"><b>输入:</b>n = 3, k = 5</span></p>
|
||||
|
||||
<p><span class="example-io"><b>输出:</b>27</span></p>
|
||||
|
||||
<p><b>解释:</b></p>
|
||||
|
||||
<p>部分好整数如下:</p>
|
||||
|
||||
<ul>
|
||||
<li>551 ,因为它可以重排列得到 515 。</li>
|
||||
<li>525 ,因为它已经是一个 k 回文整数。</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><span class="example-io"><b>输入:</b>n = 1, k = 4</span></p>
|
||||
|
||||
<p><span class="example-io"><b>输出:</b>2</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<p>两个好整数分别是 4 和 8 。</p>
|
||||
</div>
|
||||
|
||||
<p><strong class="example">示例 3:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><span class="example-io"><b>输入:</b>n = 5, k = 6</span></p>
|
||||
|
||||
<p><span class="example-io"><b>输出:</b>2468</span></p>
|
||||
</div>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= n <= 10</code></li>
|
||||
<li><code>1 <= k <= 9</code></li>
|
||||
</ul>
|
@@ -0,0 +1,41 @@
|
||||
<p>给你一个整数数组 <code>start</code> 和一个整数 <code>d</code>,代表 <code>n</code> 个区间 <code>[start[i], start[i] + d]</code>。</p>
|
||||
|
||||
<p>你需要选择 <code>n</code> 个整数,其中第 <code>i</code> 个整数必须属于第 <code>i</code> 个区间。所选整数的 <strong>得分</strong> 定义为所选整数两两之间的 <strong>最小 </strong>绝对差。</p>
|
||||
|
||||
<p>返回所选整数的 <strong>最大可能得分 </strong>。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><strong>输入:</strong> <span class="example-io">start = [6,0,3], d = 2</span></p>
|
||||
|
||||
<p><strong>输出:</strong> <span class="example-io">4</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<p>可以选择整数 8, 0 和 4 获得最大可能得分,得分为 <code>min(|8 - 0|, |8 - 4|, |0 - 4|)</code>,等于 4。</p>
|
||||
</div>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><strong>输入:</strong> <span class="example-io">start = [2,6,13,13], d = 5</span></p>
|
||||
|
||||
<p><strong>输出:</strong> <span class="example-io">5</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<p>可以选择整数 2, 7, 13 和 18 获得最大可能得分,得分为 <code>min(|2 - 7|, |2 - 13|, |2 - 18|, |7 - 13|, |7 - 18|, |13 - 18|)</code>,等于 5。</p>
|
||||
</div>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>2 <= start.length <= 10<sup>5</sup></code></li>
|
||||
<li><code>0 <= start[i] <= 10<sup>9</sup></code></li>
|
||||
<li><code>0 <= d <= 10<sup>9</sup></code></li>
|
||||
</ul>
|
@@ -0,0 +1,51 @@
|
||||
<p>给你一个由正整数构成的二维矩阵 <code>grid</code>。</p>
|
||||
|
||||
<p>你需要从矩阵中选择<strong> 一个或多个 </strong>单元格,选中的单元格应满足以下条件:</p>
|
||||
|
||||
<ul>
|
||||
<li>所选单元格中的任意两个单元格都不会处于矩阵的 <strong>同一行</strong>。</li>
|
||||
<li>所选单元格的值 <strong>互不相同</strong>。</li>
|
||||
</ul>
|
||||
|
||||
<p>你的得分为所选单元格值的<strong>总和</strong>。</p>
|
||||
|
||||
<p>返回你能获得的<strong> 最大 </strong>得分。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><strong>输入:</strong> <span class="example-io">grid = [[1,2,3],[4,3,2],[1,1,1]]</span></p>
|
||||
|
||||
<p><strong>输出:</strong> <span class="example-io">8</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<p><img alt="" src="https://assets.leetcode.com/uploads/2024/07/29/grid1drawio.png" /></p>
|
||||
|
||||
<p>选择上图中用彩色标记的单元格,对应的值分别为 1、3 和 4 。</p>
|
||||
</div>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><strong>输入:</strong> <span class="example-io">grid = [[8,7,6],[8,3,2]]</span></p>
|
||||
|
||||
<p><strong>输出:</strong> <span class="example-io">15</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<p><img alt="" src="https://assets.leetcode.com/uploads/2024/07/29/grid8_8drawio.png" style="width: 170px; height: 114px;" /></p>
|
||||
|
||||
<p>选择上图中用彩色标记的单元格,对应的值分别为 7 和 8 。</p>
|
||||
</div>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= grid.length, grid[i].length <= 10</code></li>
|
||||
<li><code>1 <= grid[i][j] <= 100</code></li>
|
||||
</ul>
|
Reference in New Issue
Block a user