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:
2023-02-02 20:54:33 +08:00
parent 9d367dc01f
commit 9f463eb5f6
25 changed files with 14901 additions and 12556 deletions

View File

@@ -0,0 +1,42 @@
<p>你有&nbsp;<code>k</code>&nbsp;个背包。给你一个下标从 <strong>0</strong>&nbsp;开始的整数数组&nbsp;<code>weights</code>&nbsp;,其中&nbsp;<code>weights[i]</code>&nbsp;是第&nbsp;<code>i</code>&nbsp;个珠子的重量。同时给你整数 <code>k</code>&nbsp;</p>
<p>请你按照如下规则将所有的珠子放进&nbsp;<code>k</code>&nbsp;个背包。</p>
<ul>
<li>没有背包是空的。</li>
<li>如果第&nbsp;<code>i</code>&nbsp;个珠子和第&nbsp;<code>j</code>&nbsp;个珠子在同一个背包里,那么下标在&nbsp;<code>i</code>&nbsp;&nbsp;<code>j</code>&nbsp;之间的所有珠子都必须在这同一个背包中。</li>
<li>如果一个背包有下标从&nbsp;<code>i</code>&nbsp;&nbsp;<code>j</code>&nbsp;的所有珠子,那么这个背包的价格是&nbsp;<code>weights[i] + weights[j]</code>&nbsp;</li>
</ul>
<p>一个珠子分配方案的 <strong>分数</strong>&nbsp;是所有 <code>k</code>&nbsp;个背包的价格之和。</p>
<p>请你返回所有分配方案中,<strong>最大分数</strong>&nbsp;<strong>最小分数</strong>&nbsp;<strong>差值</strong>&nbsp;为多少。</p>
<p>&nbsp;</p>
<p><strong>示例 1</strong></p>
<pre><b>输入:</b>weights = [1,3,5,1], k = 2
<b>输出:</b>4
<b>解释:</b>
分配方案 [1],[3,5,1] 得到最小得分 (1+1) + (3+1) = 6 。
分配方案 [1,3],[5,1] 得到最大得分 (1+3) + (5+1) = 10 。
所以差值为 10 - 6 = 4 。
</pre>
<p><strong>示例 2</strong></p>
<pre><b>输入:</b>weights = [1, 3], k = 2
<b>输出:</b>0
<b>解释:</b>唯一的分配方案为 [1],[3] 。
最大最小得分相等,所以返回 0 。
</pre>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>1 &lt;= k &lt;= weights.length &lt;= 10<sup>5</sup></code></li>
<li><code>1 &lt;= weights[i] &lt;= 10<sup>9</sup></code></li>
</ul>

View File

@@ -0,0 +1,43 @@
<p>现在有一个正凸多边形,其上共有 <code>n</code> 个顶点。顶点按顺时针方向从 <code>0</code><code>n - 1</code> 依次编号。每个顶点上 <strong>正好有一只猴子</strong> 。下图中是一个 6 个顶点的凸多边形。</p>
<p><img alt="" src="https://assets.leetcode.com/uploads/2023/01/22/hexagon.jpg" style="width: 300px; height: 293px;"></p>
<p>每个猴子同时移动到相邻的顶点。顶点 <code>i</code> 的相邻顶点可以是:</p>
<ul>
<li>顺时针方向的顶点 <code>(i + 1) % n</code> ,或</li>
<li>逆时针方向的顶点 <code>(i - 1 + n) % n</code></li>
</ul>
<p>如果移动后至少有两个猴子位于同一顶点,则会发生 <strong>碰撞</strong></p>
<p>返回猴子至少发生 <strong>一次碰撞 </strong>的移动方法数。由于答案可能非常大,请返回对 <code>10<sup>9</sup>+7</code> 取余后的结果。</p>
<p><strong>注意</strong>,每只猴子只能移动一次。</p>
<p>&nbsp;</p>
<p><strong>示例 1</strong></p>
<pre><strong>输入:</strong>n = 3
<strong>输出:</strong>6
<strong>解释:</strong>共计 8 种移动方式。
下面列出两种会发生碰撞的方式:
- 猴子 1 顺时针移动;猴子 2 逆时针移动;猴子 3 顺时针移动。猴子 1 和猴子 2 碰撞。
- 猴子 1 逆时针移动;猴子 2 逆时针移动;猴子 3 顺时针移动。猴子 1 和猴子 3 碰撞。
可以证明,有 6 种让猴子碰撞的方法。
</pre>
<p><strong>示例 2</strong></p>
<pre><strong>输入:</strong>n = 4
<strong>输出:</strong>14
<strong>解释:</strong>可以证明,有 14 种让猴子碰撞的方法。</pre>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>3 &lt;= n &lt;= 10<sup>9</sup></code></li>
</ul>

View File

@@ -0,0 +1,37 @@
<p>给你一个长度为 <code>n</code>&nbsp;下标从 <strong>0</strong>&nbsp;开始的整数数组&nbsp;<code>nums</code>&nbsp;,它包含&nbsp;<code>1</code>&nbsp;&nbsp;<code>n</code>&nbsp;的所有数字,请你返回上升四元组的数目。</p>
<p>如果一个四元组&nbsp;<code>(i, j, k, l)</code>&nbsp;满足以下条件,我们称它是上升的:</p>
<ul>
<li><code>0 &lt;= i &lt; j &lt; k &lt; l &lt; n</code>&nbsp;</li>
<li><code>nums[i] &lt; nums[k] &lt; nums[j] &lt; nums[l]</code>&nbsp;</li>
</ul>
<p>&nbsp;</p>
<p><strong>示例 1</strong></p>
<pre><b>输入:</b>nums = [1,3,2,4,5]
<b>输出:</b>2
<b>解释:</b>
- 当 i = 0 j = 1 k = 2 且 l = 3 时,有 nums[i] &lt; nums[k] &lt; nums[j] &lt; nums[l] 。
- 当 i = 0 j = 1 k = 2 且 l = 4 时,有 nums[i] &lt; nums[k] &lt; nums[j] &lt; nums[l] 。
没有其他的四元组,所以我们返回 2 。
</pre>
<p><strong>示例 2</strong></p>
<pre><b>输入:</b>nums = [1,2,3,4]
<b>输出:</b>0
<b>解释:</b>只存在一个四元组 i = 0 j = 1 k = 2 l = 3 ,但是 nums[j] &lt; nums[k] ,所以我们返回 0 。
</pre>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>4 &lt;= nums.length &lt;= 4000</code></li>
<li><code>1 &lt;= nums[i] &lt;= nums.length</code></li>
<li><code>nums</code>&nbsp;中所有数字 <strong>互不相同</strong>&nbsp;<code>nums</code>&nbsp;是一个排列。</li>
</ul>

View File

@@ -0,0 +1,46 @@
<p>给你一个正整数 <code>n</code> ,开始时,它放在桌面上。在 <code>10<sup>9</sup></code> 天内,每天都要执行下述步骤:</p>
<ul>
<li>对于出现在桌面上的每个数字 <code>x</code> ,找出符合 <code>1 &lt;= i &lt;= n</code> 且满足 <code>x % i == 1</code> 的所有数字 <code>i</code></li>
<li>然后,将这些数字放在桌面上。</li>
</ul>
<p>返回在 <code>10<sup>9</sup></code> 天之后,出现在桌面上的 <strong>不同</strong> 整数的数目。</p>
<p><strong>注意:</strong></p>
<ul>
<li>一旦数字放在桌面上,则会一直保留直到结束。</li>
<li><code>%</code> 表示取余运算。例如,<code>14 % 3</code> 等于 <code>2</code></li>
</ul>
<p>&nbsp;</p>
<p><strong>示例 1</strong></p>
<pre>
<strong>输入:</strong>n = 5
<strong>输出:</strong>4
<strong>解释:</strong>最开始5 在桌面上。
第二天2 和 4 也出现在桌面上,因为 5 % 2 == 1 且 5 % 4 == 1 。
再过一天 3 也出现在桌面上,因为 4 % 3 == 1 。
在十亿天结束时,桌面上的不同数字有 2 、3 、4 、5 。
</pre>
<p><strong>示例 2</strong></p>
<pre>
<strong>输入:</strong>n = 3
<strong>输出:</strong>2
<strong>解释:</strong>
因为 3 % 2 == 1 2 也出现在桌面上。
在十亿天结束时桌面上的不同数字只有两个2 和 3 。
</pre>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>1 &lt;= n &lt;= 100</code></li>
</ul>