From: vsv Date: 2008-06-17T14:13:59+09:00 Subject: Re: little problem (google hiring puzzle) On Jun 16, 10:25 pm, ex wrote: > I wasn't aware of the unshift overload, here I think I got O(n), > however this looks more like C++ than ruby imho: # How this looks? def prod_all_but_me(a) na = a.size v = 1 ea = Array.new(na){ |i| [v,v*=a[na-i-1]][0] } v = 1 Array.new(na){ |i| [v*ea[na-i-1],v*=a[i]][0] } end # array size n = (ARGV[0]||5).to_i # INPUT (random array) a = (1..n).to_a.sort_by{ rand } p a # OUTPUT p prod_all_but_me(a)