Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ejercicios1entrega;
- import java.util.List;
- import java.util.stream.Collectors;
- import us.lsi.common.Streams2;
- public class Ejercicio5 {
- public static List<int[]> leeFichero5(String nombreFich){
- return Streams2.fromFile(nombreFich)
- .map(linea->LineaArray(linea))
- .collect(Collectors.toList());
- }
- private static int[] LineaArray(String s){
- String[] sar = s.split(",");
- int[] ares = new int[sar.length];
- for(int i=0;i<sar.length;i++) {
- ares[i] = Integer.parseInt(sar[i]);
- }
- return ares;
- }
- public static int problema5(int[] ar) {
- int n = ar.length;
- return problema5aux(ar,0,n,0);
- }
- private static int problema5aux(int[] ar, int i, int j,int areares) {
- if(j-i!=0) {
- int menor= problema5aux2(ar, i, j);
- int vmenor= ar[menor];
- int area= (j-i)*vmenor;
- if(area>areares) {
- areares=area;
- }
- if(j-i!=1) {
- if(menor!=i) {
- areares =problema5aux(ar,i,menor,areares);
- }
- if(menor!=j-1) {
- areares =problema5aux(ar,menor+1,j,areares);
- }
- }
- }
- return areares;
- }
- private static int problema5aux2(int[]ar, int i, int j) {
- int n=0;
- int nres=0;
- for(int r=i;r<j;r++) {
- n = ar[r];
- if(r==i) {
- nres=r;
- }else {
- if(n<ar[nres]) {
- nres=r;
- }
- }
- }
- return nres;
- }
- public static void main(String[] args) {
- List<int[]> lsres = leeFichero5("ficheros/PI2Ej5DatosEntrada.txt");
- List<String> laux = Streams2.fromFile("ficheros/PI2Ej5DatosEntrada.txt")
- .collect(Collectors.toList());
- for(int i = 0;i<lsres.size();i++) {
- System.out.println("Histograma: " + "[" + laux.get(i) + "]");
- System.out.println("Área máxima: " + problema5(lsres.get(i)));
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement