Heim  >  Artikel  >  Web-Frontend  >  javascript 数据结构的题_javascript技巧

javascript 数据结构的题_javascript技巧

WBOY
WBOYOriginal
2016-05-16 19:02:29953Durchsuche

 
有一数组[5,3,4,3,0,3,3]随便一个,找出出现频率最多的那个要符合频率数/数组长度>0.5,如果有就把这个数的下标打出来,如果没有返回-1  
var a = [5,3,4,6,3,3,3]   
    for(var i=0,ci,r={};ci=a[i];i++){   
        if(r[ci]){   
            r[ci].idx.push(i);   
            r[ci].count++;   
        }else{   
            r[ci]={idx:[i],count:1}   
        }   
    }   
    var f = -1,l=a.length;   
    for(var p in r){   
        if(r[p].count/l>0.5)f=r[p].idx;   
    }   
    alert(f);   
有数组[5,0,-5,2,-4,5],打出正负算一个数,每个数的频率数   
var a = [5,3,4,6,-3,3,-3]   
    for(var i=0,ci,r={};ci=a[i++];){   
        if(r[Math.abs(ci)]){   
            r[Math.abs(ci)]++   
        }else{   
            r[Math.abs(ci)]=1;   
        }   
    }      
    var s =[];   
    for(var p in r){   
        s.push(r[p]);   
    }   
    alert(s);   
有序列[5,0,2,-6,4]他的子序列可以有[5,0],[5,0,2][2,-6],[5,0,2,-6,4]但不能是[5,2],[5,-6]   
求最大的序列和,例子的最大序列是[5,0,2]=7  
    var a = [-6,0,2,5,4],max = 0;   
    for(var i=0,l=a.length;i        for(var j=i;j            for(var tmp=0,k=i;k                tmp = tmp +a[k];   
            }   
            if(tmp>max) max = tmp;   
        }   
    }   
    alert(max);
winter 回复
第一题


[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

第二题 如果不考虑JS方便的Object的话......

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

第三题 DP解法

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

第三个全负数的bug

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn