大きな入力を昇順で最速の方法で並べ替えようとしています。コードはこのようなものです:Ruby配列の並べ替え
t=gets
ti=t.to_i
r=[]
for i in(0..ti)
k=gets
r[i]=k.to_i
end
r.sort_by{|x| -x.last}
これは私が間違っているところ私にはわからないundefined method 'last' for nil:nilclass <nomethoderror> from tsort.rb: in sort_by from tsort.rb in 'each' from tsort.rb in 'sort_by'
を言って私にエラーを与えています。
これは配列をソートしようとしています... t
のすべての数字を持つr[]
です!誰でも助けてもらえますか?
入力が10^6未満です!
より意味のある変数名を指定してください。その読みにくいです。 – MrHus
あなたのArray要素のいくつかは、明らかにnilです。あなたが明示的にすべての引数に対してto_iを呼び出すので、それは奇妙です。 nil.to_iも0です。どの入力を入力しているのか教えてください。これはプロダクションコードとまったく同じですか? – molf