Efektivní algoritmus pro výpočet nejrychlejší čas na intervalu vzdálenosti

0

Otázka

Chtěl bych vědět, jestli existují nějaké efektivní algoritmus doporučení, které jsou rychlé a nemají konzumovat příliš mnoho zdrojů, pro výpočet nejrychlejší interval vzdálenosti v posloupnosti údajů. Jinými slovy algoritmus, který vrací minimální množství času na intervalu n m, z datové sady.

Např:

Vstup

  • data_list: [{vzdálenost: 0, čas:0},{vzdálenost: 1m, čas:2s},{vzdálenost: 4m, čas:4s}...{vzdálenost:10000 m, čas: 3600s}]
  • distance_interval: 345m

Výstup

  • fastest_interval_start_distance: 7655 m
  • fastest_interval_end_distance: 8000 m
  • fastest_interval_time: n sekund

Děkuji

algorithm
2021-11-23 23:52:19
1

Nejlepší odpověď

0

Vytvořil jsem následující řešení, které má složitost běží čas o(n). S pomocí memoization, aby se zabránilo přepočítání údajů, který byl již procházen.

Funguje to tak, že min index a index max, které jsou spojeny s minimálním čase.

  1. min index začíná na indexu 0, čas 0, a fastest_interval_start_distance 0
  2. max indexu je přiřazena jakmile distance_interval je dosaženo a fastest_interval_end_distance obsahuje hodnotu vzdálenosti na takový index
  3. součet časový rozdíl mezi datové položky jsou uloženy v fastest_interval_time
  4. min index a index max začít pohybovat vpřed jako je vzdálenost zvyšuje s každou datovou položku.
  5. V případě, že součet časové rozdíly mezi min a max je menší než fastest_interval_time, že výstupní proud je aktualizován, včetně fastest_interval_start_distance a fastest_interval_end_distance a fastest_interval_time
  6. Okraj případy patří, když datový soubor je prázdný nebo distance_interval je větší než celková vzdálenost. Děkuji!!!
2021-11-24 02:13:06

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................