Frage

Angenommen, ich habe das Array:

generasacodicetagpre.

jetzt basiert auf wenigen Parametern:

    .
  1. current_item - derzeit ausgewählte Artikel.
  2. select_size - Auswahlgröße, immer ungerade.
  3. Ich möchte einen Unterladen der Liste, die den Bedingungen folgt:

      .
    1. current_item sollte in der Mitte des Unterlisten sein, wenn dies möglich ist.
    2. Falls nicht genügend Elemente links / rechts in der Liste vorhanden sind, verwenden Sie die von rechts / links.
    3. Beispiele:

      generasacodicetagpre.

War es hilfreich?

Lösung

Lassen Sie den Index des zentralen Elements $ C $ sein, und die Länge der Liste ist $ 2R + 1 $ . Wir gehen davon aus, dass die Indizes der Liste $ 0, \ LDOTs, N-1 $ sind.

Es gibt vier Fälle zu berücksichtigen:

  • Wenn $ n> 2r + 1 $ , dann sind die Ergebnisse nicht definiert (pro Post).
  • wenn $ 0 \ LEQ CR $ und $ C + R \ LEQ N-1 $ , dann Sie nehmen nur Elemente $ CR, \ LDOTs, C + R $ .
  • Wenn $ CR <0 $ , dann nehmen Sie Elemente $ 0, \ LDOs, 2R $ .
  • Wenn $ C + R \ GEQ N $ , dann nehmen Sie Elemente $ N-2R-1, \ LDOs , n-1 $ .

In den letzten beiden Fällen sind wir garantiert, da $ n> 2r + 1 $ 5r + 1 $ .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit cs.stackexchange
scroll top