📅  最后修改于: 2023-12-03 15:29:47.993000             🧑  作者: Mango
在程序开发中,查找一组数字中出现次数为奇数的数字是一个经常出现的问题。本文将介绍如何使用C#语言编写程序来查找出现奇数次的数字。
我们可以使用哈希表来实现这个功能。我们首先创建一个空的哈希表,然后遍历给定的数字数组,对于每个数字,我们确定它是否已经在哈希表中出现过。如果该数字已经在哈希表中出现过,则将其出现次数加1,如果没有出现过,则将其添加到哈希表中。最后,我们遍历哈希表并找到出现次数为奇数的数字。
以下是程序的实现:
using System;
using System.Collections.Generic;
class Program
{
static int FindOddOccurrence(int[] arr, int n)
{
Dictionary<int, int> map = new Dictionary<int, int>();
int i;
for (i = 0; i < n; i++)
{
if (map.ContainsKey(arr[i]))
map[arr[i]]++;
else
map[arr[i]] = 1;
}
foreach (var pair in map)
{
if (pair.Value % 2 != 0)
return pair.Key;
}
return -1;
}
static void Main(string[] args)
{
int[] arr = new int[] { 1, 2, 3, 2, 3, 1, 3 };
int n = arr.Length;
int result = FindOddOccurrence(arr, n);
if (result != -1)
Console.WriteLine("The number with odd occurrence is " + result);
else
Console.WriteLine("No number has odd occurrence");
Console.ReadLine();
}
}
我们首先创建一个名为FindOddOccurrence
的函数来查找出现奇数次的数字。该函数接受两个参数,一个整数数组和该数组的大小。函数返回出现奇数次的数字。
我们使用Dictionary来创建哈希表。哈希表将存储数字及其出现次数。
我们遍历数组并将每个数字作为键存储在哈希表中。如果数字已经存在,则对应的值将增加1。
最后,我们遍历哈希表并找到出现次数为奇数的数字。如果找到这样的数字,则它将作为输出返回。
以下是一些测试案例:
输入
int[] arr = new int[] { 1, 2, 3, 2, 3, 1, 3 };
输出
The number with odd occurrence is 3
输入
int[] arr = new int[] { 1, 1, 2, 2, 3, 3, 4, 4, 5 };
输出
No number has odd occurrence
哈希表是查找出现奇数次的数字的有效工具。使用C#编写的程序可以很容易地实现这个功能。