烟花的季节 發表於 2025-11-2 23:23:00

每日一题:第474场周赛 Q1. 找出缺失的元素

<h1 id="q1-找出缺失的元素">Q1. 找出缺失的元素</h1>
<p>给你一个整数数组 <code>nums</code> ,数组由若干&nbsp;<strong>互不相同</strong> 的整数组成。</p>
<p>数组 <code>nums</code> 原本包含了某个范围内的&nbsp;<strong>所有整数</strong>&nbsp;。但现在,其中可能 <strong>缺失</strong> 部分整数。</p>
<p>该范围内的&nbsp;<strong>最小</strong>&nbsp;整数和&nbsp;<strong>最大</strong>&nbsp;整数仍然存在于 <code>nums</code> 中。</p>
<p>返回一个&nbsp;<strong>有序</strong>&nbsp;列表,包含该范围内缺失的所有整数,并&nbsp;<strong>按从小到大排序</strong>。如果没有缺失的整数,返回一个&nbsp;<strong>空</strong>&nbsp;列表。</p>
<p><strong>示例 1:</strong></p>
<p>输入: nums = </p>
<p>输出: </p>
<p>解释:</p>
<p>最小整数为 1,最大整数为 5,因此完整的范围应为 。其中只有 3 缺失。</p>
<p><strong>示例 2:</strong></p>
<p>输入: nums = </p>
<p>输出: []</p>
<p>解释:</p>
<p>最小整数为 6,最大整数为 9,因此完整的范围为 。所有整数均已存在,因此没有缺失的整数。</p>
<p><strong>示例 3:</strong></p>
<p>输入: nums = </p>
<p>输出: </p>
<p>解释:</p>
<p>最小整数为 1,最大整数为 5,因此完整的范围应为 。缺失的整数为 2、3 和 4。</p>
<p><strong>提示:</strong></p>
<p>2 &lt;= nums.length &lt;= 100<br>
1 &lt;= nums &lt;= 100</p>
<p>题目链接</p>
<hr>
<p><strong>Q1题解:</strong></p>
<details>
<summary>点击查看代码</summary>
<pre><code class="language-java">import java.util.*;
class Solution {
    public List&lt;Integer&gt; findMissingElements(int[] nums) {
      Arrays.sort(nums);
      List&lt;Integer&gt; res = new ArrayList&lt;&gt;();
      for (int i=0;i+1&lt;nums.length;i++){
            while (nums+1 != nums){
                res.add(nums+1);
                nums+=1;
            }
      }
//      System.out.println(Arrays.toString(nums));
      return res;
    }
}
</code></pre>
</details>
<h1 id="q2-一次替换后的三元素最大乘积">Q2. 一次替换后的三元素最大乘积</h1>
<p>给你一个整数数组 <code>nums</code>。</p>
<p>你&nbsp;<strong>必须</strong> 将数组中的&nbsp;<strong>恰好一个</strong>&nbsp;元素替换为范围 <code>[-10^5, 10^5]</code>(包含边界)内的&nbsp;<strong>任意</strong>&nbsp;整数。</p>
<p>在进行这一替换操作后,请确定从修改后的数组中选择&nbsp;<strong>任意三个互不相同的下标</strong> 对应的元素所能得到的&nbsp;<strong>最大乘积</strong>&nbsp;。</p>
<p>返回一个整数,表示可以达到的&nbsp;<strong>最大乘积</strong>&nbsp;。</p>
<p><strong>示例 1:</strong></p>
<p>输入: nums = [-5,7,0]</p>
<p>输出: 3500000</p>
<p>解释:</p>
<p>用 -10^5 替换 0,可得数组 [-5, 7, -10^5],其乘积为 (-5) * 7 * (-10^5) = 3500000。最大乘积为 3500000。</p>
<p><strong>示例 2:</strong></p>
<p>输入: nums = [-4,-2,-1,-3]</p>
<p>输出: 1200000</p>
<p>解释:</p>
<p>有两种方法可以达到最大乘积:</p>
<p>[-4, -2, -3] → 将 -2 替换为 10^5 → 乘积为 (-4) * 10^5 * (-3) = 1200000。<br>
[-4, -1, -3] → 将 -1 替换为 10^5 → 乘积为 (-4) * 10^5 * (-3) = 1200000。<br>
最大乘积为 1200000。</p>
<p><strong>示例 3:</strong></p>
<p>输入: nums = </p>
<p>输出: 0</p>
<p>解释:</p>
<p>无论将哪个元素替换为另一个整数,数组始终会包含 0。因此,三个元素的乘积始终为 0,最大乘积为 0。</p>
<p>题目链接</p>
<p><strong>题解:</strong></p>
<details>
<summary>点击查看代码</summary>
<pre><code class="language-java">class Solution {
    public long maxProduct(int[] nums) {
      int[] sortNums=Arrays.stream(nums).map(Math::abs).sorted().toArray();
      return 100000L * sortNums * sortNums;
    }
}
</code></pre>
</details>
<hr><br><br>
来源:https://www.cnblogs.com/chloe7799/p/19185639
頁: [1]
查看完整版本: 每日一题:第474场周赛 Q1. 找出缺失的元素