0から9999までの整数を要素とする配列sが与えられたとき,sの中 で最も多く出現する数の個数をnmax, 最も少なく出現する数の個数を nminとおく.この2つの数をペアにして返す関数f(s) = [nmax, nmin] を作る.
Javascript
1function f(s){ 2 var data={}; 3 var count=0 4 for(var i=0;i<s.length;i++){ 5 var key=s[i]; 6 if(data[key]===undefined){ 7 data[key]=0; 8 count++ 9 } 10 data[key]++; 11 } 12 var ans= [] 13 for(var i=0;i<count;i++){ 14 ans[i]=data[i+1] 15 } 16 17 var ansmax 18 var ansmin 19 20 ansmax = Math.max.apply(null,ans) 21 //puts(ansmax) 22 ansmin=Math.min.apply(null,ans) 23 //puts(ansmin) 24 var answer =[] 25 answer[0]=ansmax 26 answer[1]=ansmin 27 //puts(answer) 28 return answer 29} 30puts(f([16,19,5,6,4,5,17,3,12,5,7,10,19,14,1]))
[1,3,4,2,5,4,3,3,3,6,3]のような引数を与えたところ,正常な出力結果が得られるのですが,上記のように[16,19,5,6,4,5,17,3,12,5,7,10,19,14,1]とすると出力結果が[null,null]となってしまいます.なぜそのような結果になってしまうのでしょうか?
回答2件
あなたの回答
tips
プレビュー