Maximum of all the integers in the given level of Pascal triangle
Last Updated :
10 Mar, 2022
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)
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...