C# :: Aufgabe #102 :: Lösung #3

10 Lösungen Lösungen öffentlich
#102

Das Häufigste Element in einem Array

Anfänger - C# von klhlubek19 - 16.07.2015 um 13:46 Uhr
Schreiben Sie ein Programm, das aus einem Array das häufigste Element findet. Sollte es mehrere gleicher Anzahl finden, so darf irgend ein Element dieser Häufigsten ausgegeben werden.
#3
vote_ok
von eulerscheZhl (5230 Punkte) - 17.07.2015 um 15:54 Uhr
Quellcode ausblenden C#-Code
using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;

namespace trainYourProgrammer
{
	class MainClass
	{
		static void Main(string[] args)
		{
			int[] testArray = {1,2,3,4,1,2,3,4,5,2,3};
			Console.WriteLine(String.Join(", ", FindMostFrequent(testArray)));
		}

		static T[] FindMostFrequent<T>(T[] array) where T: IComparable<T> {
			//zähle, wie oft welcher Wert vorkommt
			Dictionary<T,int> dict = new Dictionary<T, int> ();
			foreach (T t in array) {
				if (dict.ContainsKey (t))
					dict [t]++;
				else
					dict.Add (t, 1);
			}

			//finde die Werte mit den meisten vorkommen
			List<T> result = new List<T> ();
			int maxCount = 0;
			foreach (KeyValuePair<T,int> pair in dict) {
				if (maxCount < pair.Value) {
					result.Clear ();
					maxCount = pair.Value;
				}
				if (maxCount == pair.Value)
					result.Add (pair.Key);
			}
			result.Sort ();
			return result.ToArray ();
		}
	}
}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben