Largest element in an Array
Last Updated : 27 Dec, 2024
Improve
Try it on GfG Practice
Given an array arr. The task is to find the largest element in the given array.
Examples:
Input: arr[] = [10, 20, 4]
Output: 20
Explanation: Among 10, 20 and 4, 20 is the largest.Input: arr[] = [20, 10, 20, 4, 100]
Output: 100
Table of Content
Iterative Approach - O(n) Time and O(1) Space
The approach to solve this problem is to traverse the whole array and find the maximum among them.
#include <iostream>
#include <vector>
using namespace std;
int largest(vector<int>& arr) {
int max = arr[0];
//Traverse from second and compare
// every element with current max
for (int i = 1; i < arr.size(); i++)
if (arr[i] > max)
max = arr[i];
return max;
}
int main() {
vector<int> arr = {10, 324, 45, 90, 9808};
cout << largest(arr);
return 0;
}
#include <stdio.h>
int largest(int arr[], int n) {
int i;
int max = arr[0];
// Traverse array elements from second and
// compare every element with current max
for (i = 1; i < n; i++)
if (arr[i] > max)
max = arr[i];
return max;
}
int main() {
int arr[] = { 10, 324, 45, 90, 9808 };
int n = sizeof(arr) / sizeof(arr[0]);
printf("%d", largest(arr, n));
return 0;
}
import java.io.*;
class GfG {
static int largest(int[] arr) {
int max = arr[0];
// Traverse array elements from second and
// compare every element with current max
for (int i = 1; i < arr.length; i++)
if (arr[i] > max)
max = arr[i];
return max;
}
public static void main(String[] args) {
int arr[] = { 10, 324, 45, 90, 9808 };
System.out.println(largest(arr));
}
}
def largest(arr, n):
mx = arr[0]
# Traverse array elements from second
# and compare every element with
# current max
for i in range(1, n):
if arr[i] > mx:
mx = arr[i]
return mx
if __name__ == '__main__':
arr = [10, 324, 45, 90, 9808]
n = len(arr)
ans = largest(arr, n)
print(ans)
using System;
using System.Collections.Generic;
class GfG {
static int Largest(List<int> arr) {
int max = arr[0];
// Traverse from second and compare
// every element with current max
for (int i = 1; i < arr.Count; i++)
if (arr[i] > max)
max = arr[i];
return max;
}
static void Main() {
List<int> arr = new List<int> { 10, 324, 45, 90, 9808 };
Console.WriteLine(Largest(arr));
}
}
function largest(arr) {
let max = arr[0];
// Traverse from second and compare
// every element with current max
for (let i = 1; i < arr.length; i++)
if (arr[i] > max)
max = arr[i];
return max;
}
// Driver Code
const arr = [10, 324, 45, 90, 9808];
console.log(largest(arr));
Output
9808
Recursive Approach - O(n) Time and O(n) Space
The idea is similar to the iterative approach. Here the traversal of the array is done recursively instead of an iterative loop.
#include <iostream>
#include <vector>
using namespace std;
int findMax(vector<int>& arr, int i) {
// Last index returns the element
if (i == arr.size() - 1) {
return arr[i];
}
// Find the maximum from the rest of the vector
int recMax = findMax(arr, i + 1);
// Compare with i-th element and return
return max(recMax, arr[i]);
}
int largest(vector<int>& arr) {
return findMax(arr,0);
}
int main() {
vector<int> arr = {10, 324, 45, 90, 9808};
cout << largest(arr);
return 0;
}
#include <stdio.h>
int findMax(int arr[], int size, int i) {
// Last index returns the element
if (i == size - 1) {
return arr[i];
}
// Find the maximum from the rest of the array
int recMax = findMax(arr, size, i + 1);
// Compare with i-th element and return
return (recMax > arr[i]) ? recMax : arr[i];
}
int largest(int arr[], int size) {
return findMax(arr, size, 0);
}
int main() {
int arr[] = {10, 324, 45, 90, 9808};
int size = sizeof(arr) / sizeof(arr[0]);
printf("%d", largest(arr, size));
return 0;
}
import java.util.Arrays;
class GfG {
static int findMax(int[] arr, int i) {
// Last index returns the element
if (i == arr.length - 1) {
return arr[i];
}
// Find the maximum from the rest of the array
int recMax = findMax(arr, i + 1);
// Compare with i-th element and return
return Math.max(recMax, arr[i]);
}
static int largest(int[] arr) {
return findMax(arr, 0);
}
public static void main(String[] args) {
int[] arr = {10, 324, 45, 90, 9808};
System.out.println(largest(arr));
}
}
def findMax(arr, i):
# Last index returns the element
if i == len(arr) - 1:
return arr[i]
# Find the maximum from the rest of the list
recMax = findMax(arr, i + 1)
# Compare with i-th element and return
return max(recMax, arr[i])
def largest(arr):
return findMax(arr, 0)
if __name__ == '__main__':
arr = [10, 324, 45, 90, 9808]
print(largest(arr))
using System;
class GfG {
static int FindMax(int[] arr, int i) {
// Last index returns the element
if (i == arr.Length - 1) {
return arr[i];
}
// Find the maximum from the rest of the array
int recMax = FindMax(arr, i + 1);
// Compare with i-th element and return
return Math.Max(recMax, arr[i]);
}
static int Largest(int[] arr) {
return FindMax(arr, 0);
}
static void Main() {
int[] arr = {10, 324, 45, 90, 9808};
Console.WriteLine(Largest(arr));
}
}
function findMax(arr, i) {
// Last index returns the element
if (i === arr.length - 1) {
return arr[i];
}
// Find the maximum from the rest of the array
let recMax = findMax(arr, i + 1);
// Compare with i-th element and return
return Math.max(recMax, arr[i]);
}
function largest(arr) {
return findMax(arr, 0);
}
// Driver Code
const arr = [10, 324, 45, 90, 9808];
console.log(largest(arr));
Output
9808
Using Library Methods - O(n) Time and O(1) Space
Most of the languages have a relevant max() type in-built function to find the maximum element, such as std::max_element in C++. We can use this function to directly find the maximum element.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int largest(vector<int>& arr) {
return *max_element(arr.begin(), arr.end());
}
int main() {
vector<int> arr = {10, 324, 45, 90, 9808};
cout << largest(arr);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int compare(const void* a, const void* b) {
return (*(int*)a - *(int*)b);
}
int largest(int arr[], int n) {
qsort(arr, n, sizeof(int), compare);
return arr[n - 1];
}
int main() {
int arr[] = {10, 324, 45, 90, 9808};
int n = sizeof(arr) / sizeof(arr[0]);
printf("%d\n", largest(arr, n));
return 0;
}
import java.io.*;
import java.util.*;
class GfG {
static int largest(int[] arr) {
Arrays.sort(arr);
return arr[arr.length - 1];
}
static public void main(String[] args) {
int[] arr = { 10, 324, 45, 90, 9808 };
System.out.println(largest(arr));
}
}
# Python program to find maximum in arr[] of size n
def largest(arr):
return max(arr)
if __name__ == '__main__':
arr = [10, 324, 45, 90, 9808]
print(largest(arr))
using System;
using System.Linq;
using System.Collections.Generic;
class GfG {
static int largest(List<int> arr) {
return arr.Max();
}
static public void Main() {
List<int> arr = new List<int> { 10, 324, 45, 90, 9808 };
Console.WriteLine(largest(arr));
}
}
// Function to find the largest number in an array
function largest(arr) {
return Math.max(...arr);
}
// Driver Code
const arr = [10, 324, 45, 90, 9808];
console.log(largest(arr));
Output
9808