You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#:利用数组长度查找未排序整数数组中的缺失元素

找出未排序整数数组中的缺失元素

给定未排序整数数组:

int[] array = new int[] { 3, 4, 5, 7, 8, 2, 1 };

已知数组元素最小值为1,最大值为8,需找出其中缺失的元素(预期结果为6)。

核心解法:利用等差数列求和公式

因为从最小值到最大值是连续的整数序列,我们可以通过完整序列总和与当前数组元素总和的差值,直接得到缺失元素。具体步骤:

  • 计算1到8这个完整连续序列的总和:使用等差数列求和公式 (首项 + 末项) * 项数 / 2,这里项数是 max - min + 1 = 8,所以总和为 (1 + 8) * 8 / 2 = 36。
  • 计算当前数组所有元素的总和:3 + 4 + 5 + 7 + 8 + 2 + 1 = 30。
  • 缺失元素 = 完整序列总和 - 数组元素总和 = 36 - 30 = 6。

代码实现(Java)

public class FindMissingElement {
    public static void main(String[] args) {
        int[] array = {3, 4, 5, 7, 8, 2, 1};
        int min = 1;
        int max = 8;
        
        int fullSequenceSum = (min + max) * (max - min + 1) / 2;
        int arraySum = 0;
        for (int num : array) {
            arraySum += num;
        }
        
        int missingNumber = fullSequenceSum - arraySum;
        System.out.println("缺失元素:" + missingNumber); // 输出6
    }
}

关于“仅通过数组长度”的说明

当前数组长度为7,而完整连续序列的长度应为 max - min + 1 = 8,两者差值为1,说明数组恰好缺失1个元素,这也验证了使用总和差方法的合理性——当仅缺失一个元素时,该方法高效且准确。

内容的提问来源于stack exchange,提问作者Shameel KT

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 14:15:31