如何在不使用任何内置函数的情况下使用 C# 在排序数组中查找丢失的数字和重复的数字?

寻找丢失的号码

创建一个新数组并遍历整个数组,如果找到该数字则使新数组中的数字为真 遍历整个数组并返回第一个假元素作为缺失元素。

查找重复元素

新数组中的第一个真正元素将是重复元素。

示例

using System;

namespace ConsoleApplication{

   public class Arrays{

      public void MissingNumberAndRepeatedNumber(int[] arr){

         bool[] tempArray = new bool[arr.Length + 1];

         int missingelement = -1;

         int repeatingelement = -1;

         for (int i = 0; i < arr.Length; i++){

            int index = arr[i];

            if (!tempArray[index]){

               tempArray[index] = true;

            }

         };

         for (int i = 0; i < tempArray.Length; i++){

            if (!tempArray[i]){

               missingelement = i;

               break;

            }

         }

         int[] tempArray1 = new int[arr.Length + 1];

         for (int i = 0; i < arr.Length; i++){

            int index = arr[i];

            if (tempArray1[index]==0){

               tempArray1[index] = 1;

         }else if (tempArray1[index]==1){

            tempArray1[index] = 2;

      }

   };

   for (int i = 0; i < tempArray1.Length; i++){

         if (tempArray1[i]==2){

            repeatingelement = i;

            break;

         }

      }

      Console.WriteLine(missingelement);

      Console.WriteLine(repeatingelement);

   }

}

class Program{

      static void Main(string[] args){

         Arrays a = new Arrays();

         int[] arr = { 0, 1, 1, 3, 4 };

         a.MissingNumberAndRepeatedNumber(arr);

         Console.ReadLine();

      }

   }

}

输出结果
2

1

以上是 如何在不使用任何内置函数的情况下使用 C# 在排序数组中查找丢失的数字和重复的数字? 的全部内容, 来源链接: utcz.com/z/322713.html

回到顶部