Terdapat tiga kaedah berikut -
Kaedah pertama
menggunakan formula n(n+1)/2 untuk mengira bilangan unsur, yang kemudiannya perlu ditolak daripada unsur dalam tatasusunan.
Dalam kaedah kedua
cipta tatasusunan baharu, ulangi keseluruhan tatasusunan dan tetapkan nombor yang ditemui kepada palsu.
Dalam kaedah ketiga 强>
gunakan operasi XOR. Ini memberikan nombor yang hilang.
Demonstrasi masa nyata
using System; namespace ConsoleApplication{ public class Arrays{ public int MissingNumber1(int[] arr){ int totalcount = 0; for (int i = 0; i < arr.Length; i++){ totalcount += arr[i]; } int count = (arr.Length * (arr.Length + 1)) / 2; return count - totalcount; } public int MissingNumber2(int[] arr){ bool[] tempArray = new bool[arr.Length + 1]; int element = -1; for (int i = 0; i < arr.Length; i++){ int index = arr[i]; tempArray[index] = true; } for (int i = 0; i < tempArray.Length; i++){ if (tempArray[i] == false){ element = i; break; } } return element; } public int MissingNumber3(int[] arr){ int result = 1; for (int i = 0; i < arr.Length; i++){ result = result ^ arr[i]; } return result; } } class Program{ static void Main(string[] args){ Arrays a = new Arrays(); int[] arr = { 0, 1, 3, 4, 5 }; Console.WriteLine(a.MissingNumber1(arr)); Console.WriteLine(a.MissingNumber2(arr)); Console.WriteLine(a.MissingNumber3(arr)); Console.ReadLine(); } } }
2 2 2
Atas ialah kandungan terperinci Apakah cara yang berbeza untuk mencari nombor yang hilang dalam tatasusunan yang diisih menggunakan C# tanpa sebarang fungsi terbina dalam?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!