f=a=>a.length>eval("for(i=0;a[i]>-1;)a[i]==a[++i]&&a.splice(--i,2,a[i]*2);i")?1+f(a):0 ;[ [], [1], [1,1], [2,1,1], [4,2,1,1], [2,2,2,1,1], [0,0,0,0], [4,0,0,0,4], [4,0,0,0,0,4], [] ].forEach(x=>console.log( JSON.stringify(x) + " -> " + f(x) )) .as-console-wrapper{max-height:100%!important}