小编典典

Java程序在数组中查找缺失的数字

javascript

给你一个包含 1 到 n 的整数数组,但数组中从 1 到 n 的数字之一丢失了。您需要提供最佳解决方案来找到丢失的数字。数组中的数字不能重复。
例如:

int[] arr1={7,5,6,1,4,2};
Missing numner : 3
int[] arr2={5,3,1,2};
Missing numner : 4

阅读 367

收藏
2021-06-15

共1个答案

小编典典

使用公式 n=n*(n+1)/2 求 n 个数字的总和
查找给定数组中存在的元素的总和。
减法(n 个数字的总和 - 数组中存在的元素的总和)。
查找数组中缺失数字的Java程序:

package org.arpit.java2blog;

public class MissingNumberMain {

    public static void main(String[] args) {

        int[] arr1={7,5,6,1,4,2};
        System.out.println("Missing number from array arr1: "+missingNumber(arr1));
        int[] arr2={5,3,1,2};
        System.out.println("Missing number from array arr2: "+missingNumber(arr2));

    }

    public static int missingNumber(int[] arr)
    {
        int n=arr.length+1;
        int sum=n*(n+1)/2;
        int restSum=0;
        for (int i = 0; i < arr.length; i++) {
            restSum+=arr[i];
        }
        int missingNumber=sum-restSum;
        return missingNumber;
    }
}

当你运行上面的程序时,你会得到以下输出:

Missing number from array arr1: 3
Missing number from array arr2: 4
2021-06-15