Kurzusok
/
Rust
Rust
/
Feladatok
/
Nyeregpontok
Nyeregpontok

Nyeregpontok

Közepes

Bevezetés

Faházat szeretnél építeni a házadhoz közeli erdőben, hogy onnan figyelhesd a napkeltét és a naplementét.

Egy helyi felmérőcégtől olyan adatokat szereztél, amelyek megmutatják, milyen magas a térkép egyes téglalap alakú szakaszain álló összes fa. A térkép minden rácsát elemezned kell, hogy megtaláld a faházadhoz megfelelő fákat.

A jó fa egyszerre két feltételnek is megfelel:

  • magasabb minden tőle keletre és nyugatra álló fánál, így a lehető legjobb kilátás nyílik a napkeltére és a naplementére.
  • alacsonyabb minden tőle északra és délre álló fánál, hogy a lehető legkevesebbet kelljen mászni a fákon.

Utasítások

Az a feladatod, hogy megtaláld azokat a lehetséges fákat, amelyekre felépíthetnéd a lombházadat.

Egy adatcég az adatokat rácsok formájában adja meg, amelyek a fák magasságát mutatják. A rács sorai a kelet-nyugati irányt, az oszlopai pedig az észak-déli irányt jelölik.

Egy elfogadható fa a legnagyobb a saját sorában, ugyanakkor a legkisebb az oszlopában.

Lehet, hogy egy rácsban egyáltalán nincs jó fa. De az is lehet, hogy egy van, vagy akár több is.

Íme egy rács, amelyben pontosan egy szóba jöhető fa található.

      ↓
      1  2  3  4
    |-----------
  1 | 9  8  7  8
→ 2 |[5] 3  2  4
  3 | 6  6  7  1
  • A 2. sor értékei 5, 3, 2 és 4. A legnagyobb érték az 5.
  • Az 1. oszlop értékei 9, 5 és 6. A legkisebb érték az 5.

Tehát a [2, 1] pont (sor: 2, oszlop: 1) remek hely egy lombház számára.

A Rust indexei 0-tól kezdődnek

A konvenció szerint a Rustban a rendezett értéksorozatok tartalmát 0-tól kezdődően számozzuk („indexeljük”). Ez attól függetlenül érvényes, hogy e README feladatleírásának többi része mit mond, például hogy az indexek 1-től kezdődnek, ezért ezekből az indexszámokból le kell vonnod 1-et, hogy Rust-indexszámokká alakítsd őket.

Hatékonysági megjegyzés

Ez a feladat vektorok vektorát használja a mátrixok tartalmának tárolására. Bár ezt a feladatot azért tervezték, hogy segítsen a tanulóknak megérteni a vektorokkal kapcsolatos alapvető fogalmakat, például az indexelést, és azt, hogy az egymásba ágyazott adattípusok megengedettek, a vektorok vektora nem optimális választás nagy teljesítményű mátrixalgebrához és hasonló, nagyobb adatmennyiségek hatékony feldolgozásához.

Ennek a nem hatékonyságnak a részletes magyarázata túlmutat e feladat és általában e kurzus keretein. Ez a jelenség cache locality néven ismert, és ha szeretnél többet megtudni egy modern számítógép-architektúra részleteiről, arra a linkre kattintva egy jó bevezetőt találsz hozzá.

Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Rust Exercism

Készen állsz elkezdeni a(z) Nyeregpontok feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Rust nyelvet 99 feladat segítségével, valódi emberi mentorálással, mindez ingyen.