Programmier-Quiz finde nächste freie Zahl | 19. September 2007 um 19:29 Uhr

Ich habe gerade ein Interessantes Problem was ich auch mit euch mal zum Überlegen teilen möchte. Ich habe ein Array mit ganzen positiven sortierten Zahlen die bei 1 beginnen, z.B. [1,2,3,5,6,7] und möchte die erste "freie" Zahl finden. In diesem Fall ist das die 4. Im Array können auch mehrere Zahlen fehlen wie bei: [1,3,5,6,7], dann möchte ich die erste "freie" Zahl, die 2 finden, sonst nichts. Es kann auch sein dass es gar keine Lücke gibt, dann möchte ich einfach die Nächste "freie" Zahl haben. Falls schon die 1 fehlen sollte dann möchte ich diese haben.

Konkret geht es darum dass das Spieltage einer Liga sind. Es kann vorkommen dass ein Spieltag verlegt wird und erst später gespielt wird. Ich möchte dem Administrator, der ein Neues Spiel eingeben muss einen Vorschlag für den möglichen nächsten Spieltag geben. Die Spieltage bekomme ich aus der Datenbank und sie stehen mir als Array zur Verfügung.

Es ist egal in welcher Sprache ihr das löst, ich hätte aber gerne verschiedene Ansätze in verschiedenen Sprachen gesehen.

Meine Lösung bisher ist eine ziemlich einfache aber wohl nicht so performante, da jedes mal im ganzen Array gesucht werden muss (in Ruby):

def next_matchday(matchdays)
  matchday = 0
  while (matchday += 1)
    return matchday unless matchdays.include? matchday
  end
end

puts next_matchday([1,2,3,5,6,7])
=> 4

puts next_matchday([2,3,5,6,7])
=> 1

Kommentare

  Dein Kommentar 

Wie benutze ich BBcode?