Skip to content

Commit fe8f3b7

Browse files
committed
Lesson 1 - PermMissingElem (from scratch)
1 parent fa57301 commit fe8f3b7

File tree

1 file changed

+6
-8
lines changed

1 file changed

+6
-8
lines changed

perm_missing_element.rb

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
11
def perm_missing_element(a)
2-
# value range [1..(N + 1)]
3-
# array size N
42
n = a.size
5-
sorted_a = a.sort
3+
counter = Array.new(n + 1, 0)
64

7-
sorted_a.each_index do |i|
8-
return i+1 if sorted_a[i] != i+1
5+
a.each do |v|
6+
counter[v - 1] += 1
97
end
108

11-
return n+1
9+
counter.index { |v| v == 0 } + 1
1210
end
1311

1412
require 'minitest/autorun'
@@ -22,7 +20,7 @@ def test_empty_array
2220
assert_equal 1, perm_missing_element([])
2321
end
2422

25-
def test_one_item
26-
assert_equal 2, perm_missing_element([1])
23+
def test_one_element
24+
assert_equal 1, perm_missing_element([2])
2725
end
2826
end

0 commit comments

Comments
 (0)