27.rb 825 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. # 268. Missing Number
  2. # @param {Integer[]} nums
  3. # @param {Integer} val
  4. # @return {Integer}
  5. def remove_element(nums, val)
  6. num_diff = 0
  7. i = 0
  8. nums_size = nums.size()
  9. while i < nums_size do
  10. if nums[i] != val then
  11. num_diff += 1
  12. else
  13. nums[i] = -1
  14. end
  15. i += 1
  16. end
  17. i = 0
  18. while i < nums_size do
  19. if nums[i] == -1 then
  20. j = i+1
  21. while nums[j] == -1 do j += 1 end
  22. break if j >= nums_size
  23. nums[i] = nums[j]
  24. nums[j] = -1
  25. end
  26. i += 1
  27. end
  28. return num_diff
  29. end
  30. def main()
  31. def r(nums, val, exp, exp_nums)
  32. puts "remove_element(#{nums}, #{val}) = #{remove_element(nums, val)} -> #{nums} | exp_nums: #{exp_nums} exp: #{exp}"
  33. end
  34. r([3,2,2,3], 3, 2, [2,2,-1,-1])
  35. r([0,1,2,2,3,0,4,2], 2, 5, [0,1,4,0,3,-1,-1,-1])
  36. end
  37. if __FILE__ == $0
  38. main()
  39. end