Annettuna on lista, jossa on eri kokonaislukua. Tehtäväsi on selvittää, mikä on :nneksi pienin kahden luvun etäisyys, kun tarkastellaan kaikkia mahdollisia lukupareja.
Esimerkiksi kun lista on , etäisyydet ovat seuraavat pienimmästä suurimpaan:
- lukujen ja etäisyys on
- lukujen ja etäisyys on
- lukujen ja etäisyys on
- lukujen ja etäisyys on
- lukujen ja etäisyys on
- lukujen ja etäisyys on
Voit olettaa, että on enintään , jokainen luku on välillä ja on enintään .
Python
Toteuta tiedostoon distances.py
funktio find
, joka palauttaa halutun etäisyyden.
def find(t, k): # TODO if __name__ == "__main__": t = [4,1,5,2] print(find(t,1)) # 1 print(find(t,2)) # 1 print(find(t,3)) # 2 print(find(t,4)) # 3 print(find(t,5)) # 3 print(find(t,6)) # 4
Java
Toteuta tiedostoon Distances.java
metodi find
, joka palauttaa halutun etäisyyden.
public class Distances { public int find(int[] t, int k) { // TODO } public static void main(String[] args) { Distances d = new Distances(); int[] t = {1,2,4,5}; System.out.println(d.find(t,1)); // 1 System.out.println(d.find(t,2)); // 1 System.out.println(d.find(t,3)); // 2 System.out.println(d.find(t,4)); // 3 System.out.println(d.find(t,5)); // 3 System.out.println(d.find(t,6)); // 4 } }