Kaynağa Gözat

Adding solution for 27

Vinicius Teshima 1 ay önce
ebeveyn
işleme
07346aaa45
1 değiştirilmiş dosya ile 44 ekleme ve 0 silme
  1. 44 0
      Ruby/27.rb

+ 44 - 0
Ruby/27.rb

@@ -0,0 +1,44 @@
+# 268. Missing Number
+
+# @param {Integer[]} nums
+# @param {Integer} val
+# @return {Integer}
+def remove_element(nums, val)
+  num_diff = 0
+  i = 0
+  nums_size = nums.size()
+  while i < nums_size do
+    if nums[i] != val then
+      num_diff += 1
+    else
+      nums[i] = -1
+    end
+    i += 1
+  end
+  i = 0
+  while i < nums_size do
+    if nums[i] == -1 then
+      j = i+1
+      while nums[j] == -1 do j += 1 end
+      break if j >= nums_size
+      nums[i] = nums[j]
+      nums[j] = -1
+    end
+    i += 1
+  end
+  return num_diff
+end
+
+def main()
+  def r(nums, val, exp, exp_nums)
+    puts "remove_element(#{nums}, #{val}) = #{remove_element(nums, val)} -> #{nums} | exp_nums: #{exp_nums} exp: #{exp}"
+  end
+  r([3,2,2,3], 3, 2, [2,2,-1,-1])
+  r([0,1,2,2,3,0,4,2], 2, 5, [0,1,4,0,3,-1,-1,-1])
+
+end
+
+
+if __FILE__ == $0
+  main()
+end