Maximum of all the integers in the given level of Pascal triangle
Given an integer L, the task is to find the maximum of all the integers present at the given level in Pascal’s triangle.
A Pascal triangle with 6 levels is shown below:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
Examples:
Input: L = 3
Output: 3
0th level -> 1
1st level -> 1 1
2nd level -> 1 2 1
3rd level -> 1 3 3 1
Input: L = 5
Output: 10
Approach: It is known that each row in a Pascal Triangle is Binomial Coefficients and the kth coefficient in a binomial expansion for the level n is nCk. Also, the middle element of any level is always the greatest that is k = floor(n / 2).
Hence the maximum of all the integers present at the given level in Pascal’s triangle is binomialCoeff(n, n / 2).
Below is the implementation of the above approach:
C++
#include <bits/stdc++.h>
using namespace std;
int binomialCoeff( int n, int k)
{
int C[n + 1][k + 1];
int i, j;
for (i = 0; i <= n; i++) {
for (j = 0; j <= min(i, k); j++) {
if (j == 0 || j == i)
C[i][j] = 1;
else
C[i][j] = C[i - 1][j - 1] + C[i - 1][j];
}
}
return C[n][k];
}
int findMax( int n)
{
return binomialCoeff(n, n / 2);
}
int main()
{
int n = 5;
cout << findMax(n);
return 0;
}
|
Java
class GFG
{
static int binomialCoeff( int n, int k)
{
int [][] C = new int [n + 1 ][k + 1 ];
int i, j;
for (i = 0 ; i <= n; i++) {
for (j = 0 ; j <= Math.min(i, k); j++) {
if (j == 0 || j == i)
C[i][j] = 1 ;
else
C[i][j] = C[i - 1 ][j - 1 ] + C[i - 1 ][j];
}
}
return C[n][k];
}
static int findMax( int n)
{
return binomialCoeff(n, n / 2 );
}
public static void main (String[] args) {
int n = 5 ;
System.out.println(findMax(n));
}
}
|
C#
using System;
class GFG
{
static int binomialCoeff( int n, int k)
{
int [ , ] C = new int [n + 1, k + 1];
int i, j;
for (i = 0; i <= n; i++) {
for (j = 0; j <= Math.Min(i, k); j++) {
if (j == 0 || j == i)
C[i, j] = 1;
else
C[i, j] = C[i - 1, j - 1] + C[i - 1, j];
}
}
return C[n, k];
}
static int findMax( int n)
{
return binomialCoeff(n, n / 2);
}
public static void Main () {
int n = 5;
Console.WriteLine(findMax(n));
}
}
|
Python3
def binomialCoeff(n, k):
C = [[ 0 for i in range (k + 1 )]
for i in range (n + 1 )]
for i in range (n + 1 ):
for j in range ( min (i, k) + 1 ):
if (j = = 0 or j = = i):
C[i][j] = 1
else :
C[i][j] = C[i - 1 ][j - 1 ] + C[i - 1 ][j]
return C[n][k]
def findMax(n):
return binomialCoeff(n, n / / 2 )
n = 5
print (findMax(n))
|
Javascript
<script>
function binomialCoeff(n, k)
{
var C = new Array(n + 1);
for ( var i = 0; i < C.length; i++) {
C[i] = new Array(k + 1);
}
var i, j;
for (i = 0; i <= n; i++) {
for (j = 0; j <= Math.min(i, k); j++) {
if (j == 0 || j == i)
C[i][j] = 1;
else
C[i][j] = C[i - 1][j - 1] + C[i - 1][j];
}
}
return C[n][k];
}
function findMax(n)
{
return binomialCoeff(n, Math.floor(n / 2));
}
var n = 5;
document.write(binomialCoeff(n, Math.floor(n / 2)));
</script>
|
Time Complexity: O(n2)
Auxiliary Space: O(n * k)
Last Updated :
10 Mar, 2022
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...