# 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