JS [Arrays] зад.4


4

 Как се справяте с тази задача?

4.Write a script that finds the maximal increasing sequence in an array. Example:
{3, 2, 3, 4, 2, 2, 4} à {2, 3, 4}.
 
Аз от доста време си бия главата и не се получава. Ето ми и кода:
        var array = [8,5,6,7,5,8];        
        var start = 0;
        var len = 1; 
        var bestStart = 0;
        var Bestlen = 0; 
        var seq = [];    
        for ( i = 0; i < array.length; i++ ){
        
            if ( array[i] < array[i+1] ){
              len++;
            } else {
              len = 1;
              start = i;
            };
              
            if ( len > Bestlen ){
                bestStart = start;
                Bestlen = len;
             };
        };
    
        for ( i = bestStart; i < bestStart + Bestlen; i++ ){
           seq.push(array[i]);
           
        };
        console.log(seq);
 
Моля, дайте някакви идеи!
 

 




Отговори



1

Решение

Обхождам масива и проверявам дали предния елемент е с 1 по-малък от текущия. Ако това е изпълнено увеличавам currentL с 1. Ако не е проверявам дали максималната намерена до сега дължина е по-малка от currentL. Ако е запазвам новата дължина, както и индекса на последния елемент от тази поредица.
 

от dzhenko (3893 точки)