Skip to content

Commit 0a210f3

Browse files
committed
Solve arr max count in sub array.
1 parent bc3684d commit 0a210f3

File tree

2 files changed

+49
-1
lines changed

2 files changed

+49
-1
lines changed

Algorithm-Recursions/fibonacci.rb

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,14 @@ def lfibonacci(num)
2525
end
2626

2727
p lfibonacci(6)
28-
p rfibonacci(6)
28+
p rfibonacci(6)
29+
30+
#5
31+
#0 1 1 2 3 5
32+
#
33+
#fib(5) = fib(4) + fib(3) = 3 + 2 = 5
34+
#fib(4) = fib(3) + fib(2) = 2 + 1 = 3
35+
#fib(3) = fib(2) + fib(1) = 1 + 1 = 2
36+
#fib(2) = fib(1) + fib(0) = 1 + 0 = 1
37+
#fib(1) = 1
38+
#fib(0) = 0
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
=begin
2+
Input
3+
Array a is a non-empty list of unique integers that range between 1 to 1,000,000,000
4+
Size N is between 1 and 1,000,000
5+
Output
6+
An array where each index i contains an integer denoting the maximum number of contiguous subarrays of a[i]
7+
Example:
8+
a = [3, 4, 1, 6, 2]
9+
output = [1, 3, 1, 5, 1]
10+
=end
11+
12+
def count_subarrays(arr)
13+
counts = []
14+
for i in (0...arr.size) do
15+
count = 0
16+
for j in (i...arr.size) do
17+
if(arr[i] >= arr[j])
18+
count += 1
19+
else
20+
break
21+
end
22+
end
23+
j = i-1
24+
p i
25+
while(j >= 0)
26+
if(arr[i] > arr[j])
27+
count += 1
28+
else
29+
break
30+
end
31+
j -= 1
32+
end
33+
counts << count
34+
end
35+
counts
36+
end
37+
38+
p count_subarrays([3,4,1,6,2])

0 commit comments

Comments
 (0)