mirror of
https://github.com/TheAlgorithms/Ruby
synced 2024-12-26 21:58:56 +01:00
Add solution using recursion
This commit is contained in:
parent
5a9a9c0058
commit
80d52f7f6f
2 changed files with 62 additions and 0 deletions
|
@ -7,6 +7,7 @@
|
|||
* [Find All Duplicates In An Array](https://github.com/TheAlgorithms/Ruby/blob/master/data_structures/arrays/find_all_duplicates_in_an_array.rb)
|
||||
* [Find The Highest Altitude](https://github.com/TheAlgorithms/Ruby/blob/master/data_structures/arrays/find_the_highest_altitude.rb)
|
||||
* [Get Products Of All Other Elements](https://github.com/TheAlgorithms/Ruby/blob/master/data_structures/arrays/get_products_of_all_other_elements.rb)
|
||||
* [Power of Two](https://github.com/TheAlgorithms/Ruby/blob/master/data_structures/arrays/power_of_two.rb)
|
||||
* [Remove Elements](https://github.com/TheAlgorithms/Ruby/blob/master/data_structures/arrays/remove_elements.rb)
|
||||
* [Sort Squares Of An Array](https://github.com/TheAlgorithms/Ruby/blob/master/data_structures/arrays/sort_squares_of_an_array.rb)
|
||||
* [Two Sum](https://github.com/TheAlgorithms/Ruby/blob/master/data_structures/arrays/two_sum.rb)
|
||||
|
|
61
data_structures/arrays/power_of_two.rb
Normal file
61
data_structures/arrays/power_of_two.rb
Normal file
|
@ -0,0 +1,61 @@
|
|||
# Arrays - Power of 2
|
||||
#
|
||||
# Given an integer n, return true if it is a power of two. Otherwise, return false.
|
||||
#
|
||||
# An integer n is a power of two, if there exists an integer x such that n == 2^x.
|
||||
#
|
||||
# Example 1:
|
||||
# Input: n = 1
|
||||
# Output: true
|
||||
# Explanation: 2^0 = 1
|
||||
#
|
||||
# Example 2:
|
||||
# Input: n = 16
|
||||
# Output: true
|
||||
# Explanation: 2^4 = 16
|
||||
#
|
||||
# Example 3:
|
||||
# Input: n = 3
|
||||
# Output: false
|
||||
#
|
||||
# Example 4:
|
||||
# Input: n = 4
|
||||
# Output: true
|
||||
#
|
||||
# Example 5:
|
||||
# Input: n = 5
|
||||
# Output: false
|
||||
#
|
||||
# Constraints: -231 <= n <= 231 - 1
|
||||
# @param {Integer} n
|
||||
# @return {Boolean}
|
||||
#
|
||||
# Approach 1: Recursion
|
||||
#
|
||||
# Time Complexity: O(1)
|
||||
#
|
||||
def is_power_of_two(n)
|
||||
if n == 1
|
||||
return true
|
||||
elsif n%2 == 0
|
||||
is_power_of_two(n/2)
|
||||
else
|
||||
return false
|
||||
end
|
||||
end
|
||||
|
||||
n = 1
|
||||
# Output: true
|
||||
puts is_power_of_two(n)
|
||||
n = 16
|
||||
# Output: true
|
||||
puts is_power_of_two(n)
|
||||
n = 3
|
||||
# Output: false
|
||||
puts is_power_of_two(n)
|
||||
n = 4
|
||||
# Output: true
|
||||
puts is_power_of_two(n)
|
||||
n = 5
|
||||
# Output: false
|
||||
puts is_power_of_two(n)
|
Loading…
Reference in a new issue