blob: f5ffc9def7a43d09f17f2cda0af7eb10606f6934 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
def assert_equal(x, y)
raise [x, y].inspect unless x == y
end
class Solution
# time: O(n)
# space: O(n)
def self.run(items)
cache = Hash.new { |h, k| h[k] = 2 }
for i in items
cache[i] -= 1
end
cache.values.find { |value| value > 0 }
end
# time: O(n)
# space: O(1) assumes non negative numbers
def self.run(items)
cache = Array.new(items.size, 2)
for i in items
cache[i] -= 1
end
for i in (0...items.size)
return i if cache[i] % 2 != 0
end
end
end
assert_equal 1, Solution.run([4, 3, 2, 4, 1, 3, 2])
puts 'Yay!'
|