package repetisjonRekursjon;
import java.util.ArrayList;
public class Ekstra {
// oppg1: skriv en metode som gitt et array av int'er returnerer det minste tallet i arrayet
// [6,3,7,1] --> 1
//antar at listen inneholder minst 1 tall
//[1,2]
public static int finnMinsteTall(int[] array){
int minst = finnMinstRekursivt(array, 0, 100000);
return minst;
}
public static int finnMinstRekursivt(int[] arr, int indeks, int minstSaaLangt){
if(indeks == arr.length){
return minstSaaLangt;
}
if(arr[indeks] < minstSaaLangt){
minstSaaLangt = arr[indeks];
}
minstSaaLangt = finnMinstRekursivt(arr, indeks+1, minstSaaLangt);
return minstSaaLangt;
}
// oppg2: skriv en rekursiv metode som tar inn en arraylist av tall, og et tall ? lete etter. Metoden
// teller antall ganger tallet forekommer i listen
// [2,6,4,2,2], 2 --> 3
// [5,4,2], 8 --> 0
public static int finnAntallAv(ArrayList liste, int leteEtter){
return finnAntallAvRekursivt(liste, leteEtter, 0);
}
public static int finnAntallAvRekursivt(ArrayList liste, int leteEtter, int sum){
if(liste.isEmpty()) return sum;
int tall = liste.remove(0);
if(tall == leteEtter) sum++;
sum = finnAntallAvRekursivt(liste, leteEtter, sum);
return sum;
}
// oppg3: Skriv funksjonen substringRekursivt().
// Denne skal gitt en string, en startindeks og en sluttindeks returnere en streng som
// har bokstavene fra strengens indeks ?startindeks? til indeks ?sluttindeks-1?. Ta hensyn til at brukeren kan skrive inn ulogiske indekser.
// "haheiha", 2, 5 --> "hei"
public static String subStringRekursivt(String streng, int start, int slutt){
if(start >=slutt-1 || start == streng.length() -1){
return "" + streng.charAt(start);
}
return streng.charAt(start) + subStringRekursivt(streng, start+1, slutt);
}
}