如何使用 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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP