当前位置: 首页 > 面试题库 >

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

朱刚捷
2023-03-14
问题内容

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

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

问题答案:

使用公式 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


 类似资料:
  • 问题内容: 我有一个从1到100(包括两端)的数字数组。数组的大小为100。将数字随机添加到数组中,但是数组中有一个随机的空插槽。找到该插槽的最快方法是什么,应该在插槽中放入多少?最好使用Java解决方案。 问题答案: 你可以在O(n)中执行此操作。遍历数组并计算所有数字的总和。现在,从1到N的自然数之和可以表示为。在你的情况下,N = 100。 从中减去数组的总和,其中N = 100。 那是丢失

  • 本文向大家介绍PHP程序查找给定数组中缺少的数字,包括了PHP程序查找给定数组中缺少的数字的使用技巧和注意事项,需要的朋友参考一下 要查找给定数组中缺失的数字,代码如下 示例 输出结果 定义了一个名为“ missing_nums”的函数,该函数检查连续数字数组中是否缺少数字。 它遍历数组并检查以查看计数和要遍历的current_num。 如果在前一个数字加1时找不到两个值,则认为该值缺失。 在函数

  • 问题内容: 给定一个未排序的数组,您需要找到数组中o(n) 时间复杂度第二大的元素。 例如: 问题答案: 您可以对数组进行排序,然后返回数组中的倒数第二个元素,但这将在 o ( nlogn ) 时间内完成, 算法: 用最小可能值初始化最高和第二最高。 迭代数组。 如果当前元素大于最高 分配 secondHighest = 最高 分配最高 = currentElement 否则如果当前元素大于 se

  • 本文向大家介绍在JavaScript中寻找数字数组中的缺失元素,包括了在JavaScript中寻找数字数组中的缺失元素的使用技巧和注意事项,需要的朋友参考一下 我们需要编写一个JavaScript函数,该函数接受一个长度为n的数字数组。该数组包含从0到n的所有整数(包括0和n),但是仅缺少一个整数,它可以是任何数字,并且不对数组进行排序。我们函数的任务是找到丢失的数字,并在线性时间和恒定空间中将其

  • 问题内容: 给你一个整数数组。除一次外,所有数字出现偶数次。您需要找到出现奇数次的数字。你需要用 o(n) 时间复杂度和 o(1) 空间复杂度来解决它。 例如: 问题答案: 解决方案 1:使用两个 for 循环并比较元素: 这是这个问题的蛮力解决方案,但它需要 o(n*n) 时间复杂度。 解决方案 2:使用Hashing 您可以将 key 用作数字并将 count 用作值,每当 key 重复时,您