You are given an integer array nums and you have to return a new counts array. The counts array has the property where counts[i] is the number of smaller elements to the right of nums[i].
Example:
Given nums = [5, 2, 6, 1]
To the right of 5 there are 2 smaller elements (2 and 1). To the right of 2 there is only 1 smaller element (1). To the right of 6 there is 1 smaller element (1). To the right of 1 there is 0 smaller element. Return the array [2, 1, 1, 0].
我的解法:
# @param {Integer[]} nums
# @return {Integer[]}
def count_smaller(nums)
len = nums.length
new_nums = Array[]
(0...len).each do |i|
#num = nums[i]
num = i +1
new_num = 0
(num...len).each do |j|
if nums[j] < nums[i] then
new_num += 1
else
next
end
end
new_nums.push(new_num)
end
new_nums
end
submission 结果:Submission Result: Time Limit Exceeded 感觉 ruby 完全没有入门。求大神们指点。