Quindi, ho un array contenente solo 0 e 1. Devo scoprire il subarray più grande che contiene lo stesso numero di 0 e di 1. Uno può essere un approccio ingenuo ha complessità come O(n^2)
dove prendo ogni elemento nel ciclo esterno e calcolare possibili sottoarray nel ciclo interno e mantenere l'aggiornamento della dimensione massima, se trovato. C'è qualche altro approccio migliore (qualcosa come O (n)) che posso usare? Grazie!Trovare il subarray più grande con uguale numero di 0 e 01
Input: arr[] = {1, 0, 1, 1, 1, 0, 0}
Output: 1 to 6 (Starting and Ending indexes of output subarray)
Giusto, questo lo farà. Sì. Grandi pensieri. :) –
e la sequenza seguente: '0 0 0 0 1 0 1 0 0 0' –
Ciò fornirebbe l'array 0, -1, -2, -3, -4, -3, -4, - 3, -4, -5, -6. O l'intervallo delimitato da -3 o l'intervallo delimitato da -4 ti darebbe quello che stavi cercando. Anche se forse mi manca qualcosa? – templatetypedef