Tehtävien deadline: ma 2.2. klo 01:59
Tehtävissä SAA käyttää javan valmiita järjestämismetodeita!
Sinulle on annettu taulukko kokonaislukuja, ja tehtäväsi on selvittää pienin etäisyys kahden luvun välillä.
Esimerkiksi taulukossa {4, 1, 6, 2} pienin etäisyys on 1, koska lukujen 1 ja 2 etäisyys on 1.
Toteuta seuraava metodi:
int pieninEtaisyys(int[] luvut)
Parametri luvut
on taulukko,
joka sisältää 2..105 lukua.
Jokainen luku on kokonaisluku välillä –109..109.
Metodin tulee palauttaa pienin etäisyys kahden taulukon luvun välillä.
# | metodin kutsu | haluttu palautusarvo |
---|---|---|
1 | pieninEtaisyys(new int[] {4, 1, 6, 2}) | 1 |
2 | pieninEtaisyys(new int[] {3, 1, 5, 1}) | 0 |
3 | pieninEtaisyys(new int[] {2, 60}) | 58 |
4 | pieninEtaisyys(new int[] {-1000, 1001, 0}) | 1000 |
Sinulle on annettu taulukko kokonaislukuja, ja tiedät, että yli puolet taulukon luvuista on samoja. Tehtäväsi on selvittää tämä yleisin luku.
Esimerkiksi taulukossa {4, 1, 1, 2, 1} yleisin luku on 1.
Toteuta seuraava metodi:
int yleisinLuku(int[] luvut)
Parametri luvut
on taulukko,
joka sisältää 1..105 lukua.
Jokainen luku on kokonaisluku välillä –109..109.
Metodin tulee palauttaa taulukon yleisin luku. Tämä on yksikäsitteinen, koska yli puolet taulukon luvuista on samoja.
# | metodin kutsu | haluttu palautusarvo |
---|---|---|
1 | yleisinLuku(new int[] {4, 1, 1, 2, 1}) | 1 |
2 | yleisinLuku(new int[] {5, 5, 5, 2}) | 5 |
3 | yleisinLuku(new int[] {5, 5, 5, 5}) | 5 |
4 | yleisinLuku(new int[] {1, 2, 2}) | 2 |
Sinulle on annettu taulukko kokonaislukuja, ja tehtäväsi on muuttaa lukuja niin, että mikään luku ei esiinny taulukossa kahta kertaa.
Saat kasvattaa jokaista lukua haluamasi verran (myös ei yhtään). Et saa kuitenkaan pienentää mitään lukua. Tehtäväsi on etsiä ratkaisu, jossa kokonaiskasvatus on mahdollisimman pieni.
Esimerkiksi jos taulukko on {2, 3, 2, 3}, yksi optimiratkaisu on muuttaa se muotoon {2, 5, 4, 3}. Muutokset ovat {0, +2, +2, 0}, joten kokonaiskasvatus on 4.
Toteuta seuraava metodi:
long pieninKasvatus(int[] luvut)
Parametri luvut
on taulukko,
joka sisältää 1..105 lukua.
Jokainen luku on kokonaisluku välillä –109..109.
Metodin tulee palauttaa pienin kokonaiskasvatus, jonka jälkeen jokainen taulukon luku on on eri luku.
# | metodin kutsu | haluttu palautusarvo |
---|---|---|
1 | pieninKasvatus(new int[] {2, 3, 2, 3}) | 4 |
2 | pieninKasvatus(new int[] {2, 2, 2, 2}) | 6 |
3 | pieninKasvatus(new int[] {2, 4, 1, 7}) | 0 |
4 | pieninKasvatus(new int[] {3, 1, 2, 1, 1}) | 7 |
Sinulla on tiedossa kaikki ravintolassa päivän aikana käyneet henkilöt sekä heidän tulo- ja lähtöaikansa. Tehtäväsi on laskea, montako asiakasta ravintolassa oli enimmillään.
Voit olettaa, että yhtenä ajanhetkenä vain yksi asiakas voi tulla tai lähteä.
Tarkastellaan esimerkiksi seuraavaa tilannetta:
Nyt ravintolassa oli enimmillään 3 asiakasta (A, B ja C) hetkien 5 ja 6 välissä.
Toteuta seuraava metodi
int ennatys(int[] tulot, int[] lahdot)
Parametri tulot
on taulukko,
joka sisältää jokaisen asiakkaan tuloajan.
Jokainen aika on kokonaisluku välillä 0..109.
Parametri lahdot
on taulukko,
joka sisältää jokaisen asiakkaan lähtöajan.
Jokainen aika on kokonaisluku välillä 0..109.
Taulukot tulot
ja lahdot
sisältävät yhtä monta lukua,
ja asiakkaiden määrä on välillä 1..105.
Luonnollisesti asiakas ei koskaan lähde ravintolasta
ennen kuin hän on tullut sinne.
Metodin tulee palauttaa suurin asiakkaiden määrä ravintolassa.
# | metodin kutsu | haluttu palautusarvo |
---|---|---|
1 | ennatys(new int[] {3, 4, 5, 9}, new int[] {8, 6, 10, 12}) | 3 |
2 | ennatys(new int[] {3, 2, 10, 1}, new int[] {8, 9, 20, 5}) | 3 |
3 | ennatys(new int[] {1, 3, 5}, new int[] {2, 4, 6}) | 1 |
4 | ennatys(new int[] {100, 999}, new int[] {1000, 1001}) | 2 |
Sinulle on annettu taulukko kokonaislukuja, ja tehtäväsi on muuttaa lukuja niin, että jokainen taulukon luku on sama.
Saat kasvattaa tai vähentää jokaista lukua haluamasi verran (myös ei yhtään). Tehtäväsi on etsiä ratkaisu, jossa kokonaismuutos on mahdollisimman pieni.
Esimerkiksi jos taulukko on {1, 7, 3, 4}, yksi optimiratkaisu on muuttaa se muotoon {3, 3, 3, 3}. Muutokset ovat {+2, -4, 0, -1}, joten kokonaismuutos on 7.
Toteuta seuraava metodi:
long pieninMuutos(int[] luvut)
Parametri luvut
on taulukko,
joka sisältää 1..105 lukua.
Jokainen luku on kokonaisluku välillä –109..109.
Metodin tulee palauttaa pienin kokonaismuutos, jonka jälkeen jokainen taulukon luku on on sama luku.
# | metodin kutsu | haluttu palautusarvo |
---|---|---|
1 | pieninMuutos(new int[] {1, 7, 3, 4}) | 7 |
2 | pieninMuutos(new int[] {1, 2, 1, 2}) | 2 |
3 | pieninMuutos(new int[] {7, 7, 7, 7}) | 0 |
4 | pieninMuutos(new int[] {1, 1, 1, 100, 1}) | 99 |