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-06-22 23:08:40 +08:00
parent 952a47471f
commit e5097bc0f6
29 changed files with 15741 additions and 13201 deletions

View File

@@ -0,0 +1,36 @@
<p>卡车有两个油箱。给你两个整数,<code>mainTank</code> 表示主油箱中的燃料(以升为单位),<code>additionalTank</code> 表示副油箱中的燃料(以升为单位)。</p>
<p>该卡车每耗费 <code>1</code> 升燃料都可以行驶 <code>10</code> km。每当主油箱使用了 <code>5</code> 升燃料时,如果副油箱至少有 <code>1</code> 升燃料,则会将 <code>1</code> 升燃料从副油箱转移到主油箱。</p>
<p>返回卡车可以行驶的最大距离。</p>
<p>注意:从副油箱向主油箱注入燃料不是连续行为。这一事件会在每消耗 <code>5</code> 升燃料时突然且立即发生。</p>
<p>&nbsp;</p>
<p><strong>示例 1</strong></p>
<pre><strong>输入:</strong>mainTank = 5, additionalTank = 10
<strong>输出:</strong>60
<strong>解释:</strong>
在用掉 5 升燃料后,主油箱中燃料还剩下 (5 - 5 + 1) = 1 升,行驶距离为 50km 。
在用掉剩下的 1 升燃料后,没有新的燃料注入到主油箱中,主油箱变为空。
总行驶距离为 60km 。
</pre>
<p><strong>示例 2</strong></p>
<pre><strong>输入:</strong>mainTank = 1, additionalTank = 2
<strong>输出:</strong>10
<strong>解释:</strong>
在用掉 1 升燃料后,主油箱变为空。
总行驶距离为 10km 。
</pre>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>1 &lt;= mainTank, additionalTank &lt;= 100</code></li>
</ul>

View File

@@ -0,0 +1,48 @@
<p>给你一个 <strong></strong> 整数数组 <code>nums</code></p>
<p><code>nums</code> 分成两个数组:<code>nums1</code><code>nums2</code> ,并满足下述条件:</p>
<ul>
<li>数组 <code>nums</code> 中的每个元素都属于数组 <code>nums1</code> 或数组 <code>nums2</code></li>
<li>两个数组都 <strong>非空</strong></li>
<li>分区值 <strong>最小</strong></li>
</ul>
<p>分区值的计算方法是 <code>|max(nums1) - min(nums2)|</code></p>
<p>其中,<code>max(nums1)</code> 表示数组 <code>nums1</code> 中的最大元素,<code>min(nums2)</code> 表示数组 <code>nums2</code> 中的最小元素。</p>
<p>返回表示分区值的整数。</p>
<p>&nbsp;</p>
<p><strong>示例 1</strong></p>
<pre><strong>输入:</strong>nums = [1,3,2,4]
<strong>输出:</strong>1
<strong>解释:</strong>可以将数组 nums 分成 nums1 = [1,2] 和 nums2 = [3,4] 。
- 数组 nums1 的最大值等于 2 。
- 数组 nums2 的最小值等于 3 。
分区值等于 |2 - 3| = 1 。
可以证明 1 是所有分区方案的最小值。
</pre>
<p><strong>示例 2</strong></p>
<pre><strong>输入:</strong>nums = [100,1,10]
<strong>输出:</strong>9
<strong>解释:</strong>可以将数组 nums 分成 nums1 = [10] 和 nums2 = [100,1] 。
- 数组 nums1 的最大值等于 10 。
- 数组 nums2 的最小值等于 1 。
分区值等于 |10 - 1| = 9 。
可以证明 9 是所有分区方案的最小值。
</pre>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>2 &lt;= nums.length &lt;= 10<sup>5</sup></code></li>
<li><code>1 &lt;= nums[i] &lt;= 10<sup>9</sup></code></li>
</ul>

View File

@@ -0,0 +1,32 @@
<p>给你一个下标从 <strong>0</strong>&nbsp;开始的整数数组&nbsp;<code>nums</code>&nbsp;,它包含 <code>n</code>&nbsp;<strong>互不相同</strong>&nbsp;的正整数。如果&nbsp;<code>nums</code>&nbsp;的一个排列满足以下条件,我们称它是一个特别的排列:</p>
<ul>
<li>对于&nbsp;<code>0 &lt;= i &lt; n - 1</code>&nbsp;的下标 <code>i</code>&nbsp;,要么&nbsp;<code>nums[i] % nums[i+1] == 0</code>&nbsp;,要么&nbsp;<code>nums[i+1] % nums[i] == 0</code>&nbsp;</li>
</ul>
<p>请你返回特别排列的总数目,由于答案可能很大,请将它对<strong>&nbsp;</strong><code>10<sup>9&nbsp;</sup>+ 7</code>&nbsp;<strong>取余</strong>&nbsp;后返回。</p>
<p>&nbsp;</p>
<p><strong>示例 1</strong></p>
<pre><strong>输入:</strong>nums = [2,3,6]
<b>输出:</b>2
<b>解释:</b>[3,6,2] 和 [2,6,3] 是 nums 两个特别的排列。
</pre>
<p><strong>示例 2</strong></p>
<pre><b>输入:</b>nums = [1,4,3]
<b>输出:</b>2
<b>解释:</b>[3,1,4] 和 [4,1,3] 是 nums 两个特别的排列。
</pre>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>2 &lt;= nums.length &lt;= 14</code></li>
<li><code>1 &lt;= nums[i] &lt;= 10<sup>9</sup></code></li>
</ul>

View File

@@ -0,0 +1,35 @@
<p>给你两个长度为 <code>n</code>&nbsp;下标从 <strong>0</strong>&nbsp;开始的整数数组&nbsp;<code>cost</code>&nbsp;<code>time</code>&nbsp;,分别表示给&nbsp;<code>n</code>&nbsp;堵不同的墙刷油漆需要的开销和时间。你有两名油漆匠:</p>
<ul>
<li>一位需要 <strong>付费</strong>&nbsp;的油漆匠,刷第&nbsp;<code>i</code>&nbsp;堵墙需要花费&nbsp;<code>time[i]</code>&nbsp;单位的时间,开销为&nbsp;<code>cost[i]</code>&nbsp;单位的钱。</li>
<li>一位 <strong>免费</strong>&nbsp;的油漆匠,刷 <strong>任意</strong>&nbsp;一堵墙的时间为&nbsp;<code>1</code>&nbsp;单位,开销为&nbsp;<code>0</code>&nbsp;。但是必须在付费油漆匠&nbsp;<strong>工作</strong>&nbsp;时,免费油漆匠才会工作。</li>
</ul>
<p>请你返回刷完 <code>n</code>&nbsp;堵墙最少开销为多少。</p>
<p>&nbsp;</p>
<p><strong>示例 1</strong></p>
<pre><b>输入:</b>cost = [1,2,3,2], time = [1,2,3,2]
<b>输出:</b>3
<strong>解释:</strong>下标为 0 和 1 的墙由付费油漆匠来刷,需要 3 单位时间。同时,免费油漆匠刷下标为 2 和 3 的墙,需要 2 单位时间,开销为 0 。总开销为 1 + 2 = 3 。
</pre>
<p><strong>示例 2</strong></p>
<pre><b>输入:</b>cost = [2,3,4,2], time = [1,1,1,1]
<b>输出:</b>4
<b>解释:</b>下标为 0 和 3 的墙由付费油漆匠来刷,需要 2 单位时间。同时,免费油漆匠刷下标为 1 和 2 的墙,需要 2 单位时间,开销为 0 。总开销为 2 + 2 = 4 。
</pre>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>1 &lt;= cost.length &lt;= 500</code></li>
<li><code>cost.length == time.length</code></li>
<li><code>1 &lt;= cost[i] &lt;= 10<sup>6</sup></code></li>
<li><code>1 &lt;= time[i] &lt;= 500</code></li>
</ul>