This is the blog post version of the
Let’s go straight to the point
Create a function that takes an array of numbers between 1 and 10 (excluding one number) and returns the missing number.
A few points:
Examples
Ruby
1
find_missing_num([1, 2, 3, 4, 6, 7, 8, 9, 10]) ➞ 5
2
3
find_missing_num([7, 2, 3, 6, 5, 9, 1, 4, 8]) ➞ 10
4
5
find_missing_num([10, 5, 1, 2, 4, 6, 8, 3, 9]) ➞ 7
Pretty simple, isn’t it?
Let’s break the algorithm down to a few small steps:
We need to go through a list of items (an array), going from 1 to 10.
Ruby
1
def find_missing_num(array)
2
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10].each do |item|
3
end
4
end
5
6
array = [1, 2, 3, 4, 6, 7, 8, 9, 10]
7
find_missing_num(array)
Ruby provides us a really better way to do this:
Ruby
1
def find_missing_num(array)
2
(1..10).each do |item|
3
end
4
end
5
6
array = [1, 2, 3, 4, 6, 7, 8, 9, 10]
7
find_missing_num(array)
We’re going to compare each number (from 1 to 10) with the numbers in the given array.
Ruby
1
def find_missing_num(array)
2
(1..10).each do |item|
3
array.each do |number|
4
if item == number
5
break # breaking the execution
6
end
7
end
8
end
9
end
10
11
array = [1, 2, 3, 4, 6, 7, 8, 9, 10]
12
find_missing_num(array)
We break the execution once if find the desired number because we don’t need to continue looking for the number
Because we want to return the number that wasn’t found in the array, I’m going to create a local variable to indicate that.
Ruby
1
def find_missing_num(array)
2
(1..10).each do |item|
3
found = false
4
array.each do |number|
5
if item == number
6
found = true
7
break
8
end
9
end
10
if found = false
11
return item
12
end
13
end
14
end
15
16
array = [1, 2, 3, 4, 6, 7, 8, 9, 10]
17
find_missing_num(array)
That’s it!
I know, that’s not beautiful but it works : )
Do you have a better/different version? Drop that in the comments and bring more healthy discussions :)
Thanks for the visit and in the next coding challenge we’re going to explore a more decent way to solve this puzzle, see you there!
Don’t forget to come by and say hi!
Courses Twitter Youtube Instagram Linkedin GitHub
#ruby #programming #code #algorithms #coding #game #ruby on rails #arrays