2150. 找出數(shù)組中的所有孤獨(dú)數(shù)字
雖然Ruby核心庫(kù)不再有Set毫胜,但是這題居然能用得到Set的divide API书斜,于是實(shí)操了一把,會(huì)超時(shí)酵使,但是體驗(yàn)divide API的感覺(jué)很好
# @param {Integer[]} nums
# @return {Integer[]}
require "set"
def find_lonely(nums)
h = Hash.new(0)
s = Set.new
nums.each do |n|
h[n] += 1
s.add(n)
end
s1 = s.divide { |i,j| (i - j).abs == 1 }
s2 = []
s1.each do |x|
y = x.to_a
if y.length == 1 && (h[y[0]] == 1)
s2 << y[0]
end
end
s2
end
體驗(yàn)完了divide荐吉,還是用常規(guī)解法一擊必殺吧,大家忘了divide吧
# @param {Integer[]} nums
# @return {Integer[]}
def find_lonely(nums)
if nums.length == 1
return nums
end
nums.sort!
ans = []
for i in 0...nums.length
if i == 0 && nums[i+1]-nums[i]>1
ans << nums[i]
elsif i > 0 && i < nums.length-1 && nums[i+1]-nums[i]>1 && nums[i]-nums[i-1]>1
ans << nums[i]
elsif i == nums.length-1 && nums[i]-nums[i-1]>1
ans << nums[i]
end
end
ans
end