Najwiekszy podciag rosnacy

0

Witam!

W jaki sposob mozna znalezc najwiekszy podciag rosnacy na przykladzie tablicy?

#include <iostream>

using namespace std;

int main(){

	int tab [] = {0,0,0,5,6,7,0,6,6,0};
	int tab_size = sizeof(tab)/sizeof(tab[0]); // [(4 * 5)/4] - "dzielenie przez rozmiar pojedynczego elementu
	cout<<"Wielkosc tablicy: "<<tab_size<<endl;
	
	int wynik = 0;
	

	for(int i=0; i<tab_size ; i++){

		for(int j=1; j<tab_size ; j++){
			
			int suma = 0;
			for(int k = 0; k<tab_size; k++){
				suma += tab[k];
				}
			}
			if( suma > wynik)
				wynik = suma;
			
		}
	}
	cout<<wynik<<endl;
}

 
0

nie wiem po co tu uzywasz dwoch petli, wystarczy w pierwszej sprawdzac czy poprzednia wartosc jest < od dotychczasowej (wtedy nadal jest ten ciag i zwiekszasz jego dlugosc) a jak nie to oznaczasz dlugosc nowego jako 1 itd. jesli musisz znalezc ten podciag to zapisuj (poza jego dlugoscia) wskaznik do pierwszego elementu.

0

Jedna petla jednak w jaki sposob program pozna ze to jest koniec podciagu?

#include <iostream>
using namespace std;

int main(){

	int tab [] = {0,0,0,5,6,7,0,6,7,0};
	int tab_size = sizeof(tab)/sizeof(tab[0]); // [(4 * 5)/4] - "dzielenie przez rozmiar pojedynczego elementu
	cout<<"Wielkosc tablicy: "<<tab_size<<endl;
	
	int wynik = 0;
	int suma =0;
	
			for(int k = 0; k<tab_size; k++){
				suma += tab[k];
				if(suma > wynik){
					wynik = suma;
				}
			}

	cout<<wynik<<endl;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1