示例:该功能
frequencies (3,[0,1,1,0,1,1]) should return [2,4,0]
Run Code Online (Sandbox Code Playgroud)
这就是我所拥有的:
def minPosFrom (a, pos)
min = a[pos]
minPos = pos
for i in pos+1 .. a.size-1 do
if a[i] < min
then minPos =i
min = a[i]
end
end
return minPos
end
def swap!(a,i,j)
dummy = a[i]
a[i] = a[j]
a[j] = dummy
end
def minSort!(a)
for i in 0 .. a.size-2 do
pos = minPosFrom(a,i)
swap!(a,i,pos)
end
return a
end
def frequencies(a)
minSort!(a)
b=1
i=0
while a[i]==a[i+1] do
b=b+1
i=i+1
return (b)
end
end
Run Code Online (Sandbox Code Playgroud)
现在
p(frequencies([0,1,1,0,1,1]))
Run Code Online (Sandbox Code Playgroud)
给了我一个2两个前导零.这很好.但是我希望整个事情能够继续下去并且为了4以下四个而获得一个,所以[2,4].其实我需要[2,4,0]当n=3,但我还没有定义的n,但我想这不会是很难做到的,一旦我得到的程序给我重复号的数量在一个数组...
期望看到:p(频率([0,1,1,0,1,1])) - > [2,4,0]实际上看到:p(频率([0,1,1,0,1, 1])) - > [2]尝试:各种循环和其他功能.
def frequencies(n, array)
n.times.map { |num| array.count(num) }
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
79 次 |
| 最近记录: |