C# 我需要一个算法来计算一个算法中重复次数最多的数字
这是我想到的,但它不起作用:C# 我需要一个算法来计算一个算法中重复次数最多的数字,c#,arrays,algorithm,C#,Arrays,Algorithm,这是我想到的,但它不起作用: static void Main(string[] args) { int[] arr =Console.ReadLine().Split(' ').Select(x => int.Parse(x)).ToArray<int>(); int MostRepatedNumber = 0; int Count = 0; int i; for (i = 0;
static void Main(string[] args)
{
int[] arr =Console.ReadLine().Split(' ').Select(x => int.Parse(x)).ToArray<int>();
int MostRepatedNumber = 0;
int Count = 0;
int i;
for (i = 0; i < arr.Length -1; i++)
{
if (arr[i] == arr[i + 1])
{
Count++;
MostRepatedNumber = arr[i];
}
}
if(arr[i] < arr.Length - 2)
{
if (arr[i] < arr[i + 1])
{
Count = 1;
MostRepatedNumber = arr[i + 1];
}
}
Console.WriteLine(MostRepatedNumber);
}
static void Main(字符串[]args)
{
int[]arr=Console.ReadLine().Split(“”)。选择(x=>int.Parse(x)).ToArray();
int MostRepatedNumber=0;
整数计数=0;
int i;
对于(i=0;i
如果要查找列表/数组中重复次数最多的数字,可以按数字分组,按计数降序,然后按顺序取第一个:
IList<int> myNumbers = ...
int mostRepeated = myNumbers.GroupBy(x => x)
.OrderByDescending(g => g.Count())
.First()
.Key;
像这样的怎么样
static void Main(string[] args)
{
int[] arr = Console.ReadLine().Split(' ').Select(x => int.Parse(x)).ToArray<int>();
int max = 0;
int mostRepeated = arr[0];
foreach(int element in arr)
{
int[] temp = arr.Where(i => i == element).ToArray();
if(temp.Length > max)
{
max = temp.Length;
mostRepeated = element;
}
}
Console.WriteLine(mostRepeated);
}
static void Main(字符串[]args)
{
int[]arr=Console.ReadLine().Split(“”)。选择(x=>int.Parse(x)).ToArray();
int max=0;
int mostRepeated=arr[0];
foreach(arr中的int元素)
{
int[]temp=arr.Where(i=>i==元素).ToArray();
如果(温度长度>最大值)
{
最大值=温度长度;
最重复=元素;
}
}
控制台写入线(重复次数最多);
}
解释一下也不错。我的标题有个错误,应该是:C#-我需要一个算法来计算数组中重复次数最多的数字。我在这里,所以我不知道如何编辑它。在你问题的标签下面是一个编辑按钮,你可以自由地使用它来编辑你自己的问题。。。“不起作用”意味着什么?使用字典来计算每个数字出现的频率。可能的重复我知道这是一种方法,但我想用算术来做。@Cratthead定义“算法”好的,类似数学的算法,不使用内置函数和命令,只使用循环等。对不起,但我是编程新手,所以我希望你明白我的意思。
static void Main(string[] args)
{
int[] arr = Console.ReadLine().Split(' ').Select(x => int.Parse(x)).ToArray<int>();
int max = 0;
int mostRepeated = arr[0];
foreach(int element in arr)
{
int[] temp = arr.Where(i => i == element).ToArray();
if(temp.Length > max)
{
max = temp.Length;
mostRepeated = element;
}
}
Console.WriteLine(mostRepeated);
}